我正在测试是否能够创建可以在现有Winforms应用程序中使用的WPF控件。通过此测试,目标是拥有全球使用的WPF资源字典。
我在控件中定义样式设置的第一步工作正常。
<UserControl.Resources>
<Style TargetType="Label">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Background" Value="LightYellow"/>
<Setter Property="FontSize" Value="30"/>
</Style>
<Style TargetType="Label" x:Key="myHW">
<Setter Property="Foreground" Value="Green"/>
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="FontSize" Value="30"/>
</Style>
<Style TargetType="Label" x:Key="StatusMessage">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Background" Value="LightPink"/>
</Style>
</UserControl.Resources>
第二步是将样式信息提取到字典XAML文件中,然后通过资源字典进行引用。此步骤无效。
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Dictionaries/ResourceTest.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
程序集名称:test2
项目内部的路径:/Dictionaries/ResourceTest.xaml
开发中收到的错误是:
异常:查找资源字典“ /Dictionaries/ResourceTest.xaml”时发生错误。
我尝试了Microsoft提出的URI语法的变体。
xaml的构建操作类型是否与问题有关?
答案 0 :(得分:0)
感谢Jeff R.的答复。那是问题之一。
我继续对此感到困惑,并最终解决了多个问题。由于是在沙盒中的Winforms应用程序中创建的,因此我创建了WPF应用程序,然后添加了资源字典。在两个资源字典xaml文件之间进行了比较,以找出任何差异。
资源字典xaml文件需要更新以下设置:
此外,词典文件上缺少正确的开始标签。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
最后,由于手动输入源路径不起作用,我尝试使用“属性”页面“源”下拉选择,然后选择所需的路径语法,然后与Jeff R.的建议相匹配。
总而言之,存在三个问题: