创建没有generic.xaml的自定义控件?

时间:2011-12-15 19:38:13

标签: c# silverlight xaml custom-controls

我在PRISM应用程序中遇到不同的XAML设计器错误。 我在基础设施项目中有自定义控件,似乎所有引用项目在某些时候都有问题加载控件模板。

一切都在运行时运行良好,但VS2010不适用于所有类型的错误。 我知道它确实与自定义控件有关,因为某些原因没有从generic.xaml正确加载样式。

我想要尝试的是将generic.xaml全部放在一起,然后切换为我的自定义控件使用命名模板。这样我总是可以合并资源文件,所以VS知道在哪里寻找东西。

  1. 您认为这是可行的解决方案吗?

  2. 如何从命名样式填充DefaultStyleKey

2 个答案:

答案 0 :(得分:0)

这不是一个可行的解决方案:自定义控件从Themes / generic.xaml中提取信息。这已经融入运行时。

如果您正在构建WPF / Silverlight复合应用程序,则需要将generic.xaml放在WPF项目中并将其链接到Silverlight项目。这与Prism指导相反,但由于链接的XAML文件存在于WPF项目中不在根级别的错误,因此是必需的。

答案 1 :(得分:0)

如果没有generic.xaml,有些困难,但在generic.xaml的帮助下,您可以切换为自定义控件使用命名模板。只需在generic.xaml

中添加以下代码即可
<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/CPMS.Utility.Controls;component/Controls/MyUc/Style/DBLoginForm.xaml" />

</ResourceDictionary.MergedDictionaries>