我已经尝试了一整天,但无济于事,想要创建一堆笔刷并在自定义控件中使用DynamicResource。我的步骤如下:
- 创建包含样式的主题generic.xaml(可行)
- 添加一个字典,将其与generic.xaml合并,包含应用程序使用的笔刷(可行)
- 让笔刷具有ComponentResourceKey键(可行)
- 将控件作为静态资源使用笔刷(可行)
- 将控件作为动态资源使用笔刷(不可行,资源跟踪源也显示如此:System.Windows.ResourceDictionary Warning: 9 : Resource not found; )
- 在App.Resources中动态添加具有相同键的笔刷(对于动态资源有效,它更改颜色,对于静态资源无效,如预期)
所以我的问题是,我找不到任何方法在主题中定义默认值,以便我可以在应用程序中以编程方式更改它们。为什么StaticResource能够找到笔刷而DynamicResource不能?!
我必须补充说,我创建了一个静态类,将组件资源键作为属性保存,然后在xaml中使用{ x:Static UI:ResourceScheme.ControlBackgroundKey }之类的方式。我的问题似乎类似于这个问题:ComponentResourceKey as DynamicResource problem,只是如果我将静态属性键替换为组件资源键的XAML标记,它仍然无法正常工作。
有人可以帮帮我吗?:(