我有一个问题,WPF资源通过StaticResources访问外部ResourceDictionary中的外部样式信息 .
我继承了一堆代码,它们在WPF中使用了很多DynamicResources来从Shared.xaml获取样式信息 . 我宁愿他们是StaticResources,以便设计师视图变得有用 . 我发现我可以在事物的.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>
有任何想法吗?
1 回答
但是,请注意,在每个usercontrol中执行此操作会占用大量RAM,因为您实际上是在运行时为此控件的每个实例创建Shared.xaml ResourceDictionary的新实例 . 你应该看看SharedResourceDictionary