对于外部自定义控件libary项目中的标准WPF控件和自定义控件,我有几种样式和模板。对于每个控件,我的\Themes文件夹中都有一个\Themes,还有一个包含所有其他XAML文件的合并字典的Generic.xaml。
我确保:
Generic.xaml位于项目根目录中的Themes\文件夹中。Generic.xaml有一个Page的构建操作。Generic.xaml使用自定义工具标志MSBuild:Compile。[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]我试过的是:
资料来源
Source="MyControl.xaml"Source="/MyLibrary;component/Themes/MyControl.xaml"Source="/MyLibrary;component/Themes/MyControl.xaml"Source="/pack://application:,,,/Themes/MyControl.xaml"Source="/pack://application:,,,/MyLibrary;component/Themes/MyControl.xaml"应用程序
Generic.xaml但是,什么也不起作用。应用程序保持完全非主题化,尽管我可以看到在访问Application.Current.Resources时已经加载了所有字典。
还值得注意的是,我的大多数控制主题包含额外的动态资源(用于颜色等),这些资源在应用程序启动时手动加载。
我似乎正面临着与OP in this question here完全相同的问题,但是他们说手动引用Generic.xaml对他们是有效的。
发布于 2017-01-03 21:36:38
是否在静态构造函数中定义了以下代码?
DefaultStyleKeyProperty.OverrideMetadata (YourCustomClass),new FrameworkPropertyMetadata (FrameworkPropertyMetadata(YourCustomClass));
不要在资源字典中使用x:key ="style_name“
https://stackoverflow.com/questions/41430754
复制相似问题