我创建了一个“主题引擎”,其中包含资源字典和自定义组合框来更改应用程序的外观。这包含在 .dll 文件中,目的是能够从任何新应用程序中引用此 .dll 并准备好皮肤逻辑。我已经相对轻松地解决了这个项目的大部分问题,但我留下了一个大问题......在调用 .dll 的应用程序中,可以使用背景设置元素的背景等属性= "{DynamicResource XKeyOfBrushIWantToUse}" 但有一个编译时警告指出“资源 "XKeyOfBrushIWantToUse" 无法解析。这是有道理的,因为 .dll 尚未加载。一旦我运行应用程序,它现在能够找到该资源并适当地使用它。我想要的是一种在编译时/设计时知道画笔 x:key 属性是什么的方法,这样当我将属性设置为一个值时,我就可以知道哪些选项可用。
例如,在我的 .dll 中有一个画笔 x:key="MainWindowBackgroundBrush"。此画笔的颜色属性会根据加载的包含颜色的资源字典而更改。(即 BlueColors.xaml 的颜色是 BackgroundColor,RedColors.xaml 也是如此。在运行时我可以交换颜色文件,尽管颜色的十六进制值现在不同,但画笔仍将指向“BackgroundColor”)现在当我去一个新的应用程序并引用.dll并设置一个按钮的背景颜色,我必须知道画笔的键是什么,因为我还没有找到从.dll中公开可用键的方法。
非常感谢您的帮助!!!!