我在 vs2015 中有一个带有两个程序集的解决方案。其中一个是 WPF 应用程序,另一个是 WPF 类库。
在我的类库项目根目录中,我有一个 ResourceDictionary
叫 Directory.xaml
- 这有一些样式,一些刷子和一些字符串等。
使用:
<ResourceDictionary Source="pack://application:,,,/Resources;component/Directory.xaml"/>
我可以成功使用这些资源,但是我打算在以后的项目中使用已编译的类库 (dll),问题是,除非我导入项目并引用而不是仅引用 dll,否则我没有任何智能感知支持.
有任何想法吗?
最佳答案
我希望有人提出更好的答案,但我决定的解决方法是使用库 dll 中的类,键定义为常量字符串,使用字典中定义的字符串,然后使用应用程序中定义的字符串,我在那里获得了 key 的智能感知。
在库 dll 中,创建一个将定义资源键的类:
public class KeyDefinitions {
public const string Key1 = "key1";
public const string Key2 = "key2";
}
同样在库 dll 中,在资源字典中,使用这些键(遗憾的是,我没有在库的资源 xaml 文件中获得 Intellisense 来检测 KeyDefinitions 的成员):
<BitmapImage x:Key="{x:Static local:KeyDefinitions.Key1}" UriSource="../Images/Img1.bmp"/>
<BitmapImage x:Key="{x:Static local:KeyDefinitions.Key2}" UriSource="../Images/Img2.bmp"/>
然后,在应用程序中,在 xaml 中,您可以从 KeyDefinitions 类中引用键并获得对键的智能感知和编译时检查:
<Image Source="{DynamicResource ResourceKey={x:Static myLibraryNamespace:KeyDefinitions.Key1}}" />
<Image Source="{DynamicResource ResourceKey={x:Static myLibraryNamespace:KeyDefinitions.Key2}}" />
当然,这假设您可以控制库 dll!
关于.net - 在单独的程序集中具有资源字典的智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769237/