我目前正在构建一个由多个组件组成的应用程序,每个组件本质上都是一个 WPF 用户控件,周围有一些 C# 代码,以便插件系统工作(使用 MEF)。
我遇到的问题是每个组件都应该包含一个图标,出于美观的目的,我将其定义为一个System.Windows.Media.Brush
,所以我可以在DrawingBrush
那里使用从 Design 导出的内容。现在我需要从非 WPF C# 访问那段 XAML,我目前有一个可怕的解决方法是实例化用户控件并询问它的资源:
private Brush CachedIcon = null;
public override Brush Icon
{
get
{
if (CachedIcon == null)
{
CachedIcon = (Brush)(new BlahControl().TryFindResource("Icon"));
}
return CachedIcon;
}
}
我找不到ResourceDictionary
从“普通”C# 类中读取该资源(这是一个 .xaml 文件,并在自定义控件中的 a 中引用)的方法。任何属于 WPF 的东西都有那个很好的TryFindResource
方法,但不然怎么做呢?我不想让带有未嵌入图标的 XAML 文件。