我正在尝试在这里学习Silverlight,创建自定义控件模板,但是VS2010拒绝识别标记代码中的ControlTemplate
类型,即使我引用了System.Windows
和{{1}程序集(默认情况下,在基于标准Silverlight应用程序模板的项目基础上)。我正在尝试重新创建this seen on another SO stack。
我已尝试将此代码直接放入文件(即ImageButton.xaml)中,而不是其他内容:
System.Windows.Controls
答案 0 :(得分:0)
在不知道更多上下文的情况下,权威性地回答这个问题有点困难,比如你将这个文件放在什么类型的文件中,以及Visual Studio的确切错误是什么。我想你会收到如下错误:
The type 'ControlTemplate' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.
或可能:
Property 'Content' does not support values of type 'ControlTemplate'
这是由于将模板放在错误的位置引起的 - 例如,如果您创建新的UserControl
(通过添加 - >新项目)并删除文件的内容并粘贴到您的代码中,那么你会得到这个错误,因为xaml没有引用ControlTemplate
。
放置ControlTemplate
的最佳位置是可以重复使用的地方,例如新的“资源字典”(再次通过添加 - >新项目 - > Silverlight资源字典添加它)然后放置您的代码内部 <ResourceDictionary ...></ResourceDictionary>
标记。
如果要将其放在UserControl
(第二个错误的来源)中,则应将其添加到该控件的Resources
部分,例如:
<UserControl.Resources>
<ControlTemplate x:Key="ImageButtonTemplate">
<Image Source="{TemplateBinding Content}" />
</ControlTemplate>
</UserControl.Resources>