C# 尝试通过带有x:Key的ResourceDictionary通过StaticResource访问样式信息
WPF资源通过StaticResources访问外部资源字典中的外部样式信息时遇到问题 我继承了一组代码,这些代码在WPF中使用了大量DynamicResources来从Shared.xaml获取样式信息。我希望它们是静态资源,以便设计器视图变得有用。我发现我可以在这个东西的.Resources中添加一个ResourceDictionary,除非WPF中已经有一个.Resources在使用,否则它可以正常工作。在这种情况下,我被告知需要向我的ResourceDictionary添加一个x:Key。我这样做,只是现在我不知道如何使用该键静态地查找资源 最简单的例子:C# 尝试通过带有x:Key的ResourceDictionary通过StaticResource访问样式信息,c#,wpf,xaml,C#,Wpf,Xaml,WPF资源通过StaticResources访问外部资源字典中的外部样式信息时遇到问题 我继承了一组代码,这些代码在WPF中使用了大量DynamicResources来从Shared.xaml获取样式信息。我希望它们是静态资源,以便设计器视图变得有用。我发现我可以在这个东西的.Resources中添加一个ResourceDictionary,除非WPF中已经有一个.Resources在使用,否则它可以正常工作。在这种情况下,我被告知需要向我的ResourceDictionary添加一个x:Key
<UserControl x:Class="myClass"
...>
<UserControl.Resources>
<ResourceDictionary x:Key="Shared.xaml" Source="/ExteralResource;component/Shared.xaml"/>
<BooleanToVisibilityConverst x:Key="BoolToVis">
</UserControl.Resources>
<TextBlock Background="{StaticResource BrushFromSharedXAML}" /> <!-- Never finds BrushSharedXAML -->
</UserControl>
有什么想法吗?
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ExteralResource;component/Shared.xaml"/>
</ResourceDictionary.MergedDictionaries>
<BooleanToVisibilityConverst x:Key="BoolToVis">
</ResourceDictionary>
</UserControl.Resources>
不过,请注意,在每个usercontrol中执行此操作将消耗大量RAM,因为您实际上是在运行时为此控件的每个实例创建Shared.xaml ResourceDictionary的新实例。你应该看看