我在一个位于WPFResources.dll的资源字典中有一个简单的样式,我在另一个项目中访问这个样式,我可以看到样式在设计时应用,但是当我运行应用程序时我得到"Cannot find resource named 'IndentCheckBoxStyle'. Resource names are case sensitive"
的例外。如果我使用StaticResource然后我可以看到这个异常如果我使用DynamicResource然后我没有看到任何异常,但在UI上看不到任何内容。
有关此问题的更多信息:
我在我的项目中引用了WPFResources.dll并将其合并到App.XAML中,如下所示:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/WPFResources;component/Theme.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
在Theme.xaml中,我合并了cheboxstyle的资源字典。
任何人都对此有任何想法吗?
提前致谢。
答案 0 :(得分:1)
我遇到了这个问题,发现使用Pack URI语法将样式应用于整个应用程序,
e.g。在App.xaml中
<Application x:Class="Framework.Presentation.Preview.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Abt.Framework.Presentation;component/Themes/AbtDark.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
但是,隐式样式未应用于应用程序中的顶级窗口(尽管MyTheme.xaml包含未命名的窗口样式)
要解决这个问题,我只是为Window使用了一个命名样式(非隐式样式)。其余的正确应用。