.net - 在单独的程序集中具有资源字典的智能感知

标签 .net wpf vb.net xaml visual-studio-2015

我在 vs2015 中有一个带有两个程序集的解决方案。其中一个是 WPF 应用程序,另一个是 WPF 类库。

在我的类库项目根目录中,我有一个 ResourceDictionaryDirectory.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/

相关文章:

c# - DataGridView 在更改 Checkbox 值后直接更新数据源

c# - 如何在Visual Studio中隐藏自定义工具生成的文件

wpf - 为什么 WPF 中的 TextBox.Text 不可设置动画?

c# - 系统.Enum.GetValues : In C# not the same as in VB?

vb.net - VB代码不计算

sql - VB.NET 中的 SUMIF SQL VIA OLEDB

.net - 在VB.NET中使用RSA加密进行解密

.net - Path.Combine 的安全版本

.NET 的 Python "unable to find assembly"错误

wpf - 标记扩展方法如何应用于 XAML 中的绑定(bind)值?