【问题标题】:Create custom controls without generic.xaml?创建没有 generic.xaml 的自定义控件?
【发布时间】:2011-12-15 19:38:13
【问题描述】:
我的 PRISM 应用程序中出现不同的 XAML 设计器错误,这让我发疯了。
我在基础设施项目中有自定义控件,似乎所有引用项目在某些时候加载控件模板都有问题。
在运行时一切都运行良好,但 VS2010 无法处理所有类型的错误。
我确定它与自定义控件有关,由于某种原因无法从 generic.xaml 正确加载样式。
我想尝试将generic.xaml 全部删除并切换到为我的自定义控件使用命名模板。这样我就可以随时合并资源文件,让 VS 知道去哪里找东西。
您认为这是可行的解决方案吗?
如何从命名样式填充DefaultStyleKey?
【问题讨论】:
标签:
c#
silverlight
xaml
custom-controls
【解决方案1】:
这不是一个可行的解决方案:自定义控件从 Themes/generic.xaml 中提取其信息。这已融入运行时。
如果您正在构建 WPF/Silverlight 复合应用程序,您需要将 generic.xaml 放入您的 WPF 项目并将其链接到您的 Silverlight 项目。这与 Prism 指南相反,但由于链接的 XAML 文件存在错误,这些文件不在 WPF 项目的根级别。
【解决方案2】:
如果没有 generic.xaml,这会有些困难,但在 generic.xaml 的帮助下,您可以切换到为自定义控件使用命名模板。只需在 generic.xaml 中添加以下代码
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/CPMS.Utility.Controls;component/Controls/MyUc/Style/DBLoginForm.xaml" />
</ResourceDictionary.MergedDictionaries>