我在vs2015中有两个程序集的解决方案。其中一个是WPF应用程序,另一个是WPF类库。
在我的类库项目根目录中,我有一个名为ResourceDictionary
的{{1}} - 这有一些样式,一些画笔和一些字符串等。
使用:
Directory.xaml
我可以成功使用这些资源,但是我打算在未来的项目中使用已编译的类库(dll),问题是,除非我导入项目和引用而不是仅仅引用dll,否则我不会这样做。有任何intellisense支持。
有什么想法吗?
答案 0 :(得分:0)
我希望有人能给出更好的答案,但是我决定采用的解决方法是使用Library dll中的类,将键定义为const字符串,使用字典中定义的字符串,然后再使用定义的字符串在应用程序中,我在按键上获得了智能感知。
在库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的控制权!