无法合并来自不同项目的XAML资源和样式

时间:2011-04-26 08:33:58

标签: xaml styles resourcedictionary

我正在创建许多WPF应用程序,这些应用程序都涉及一个中央WPF应用程序,需要共享相同的样式和资源。首先,我在我的主项目中创建了一个文件夹,并添加了一些XAML样式,这些样式都以我想要的样式显示UI。 后来,我创建了另一个应用程序但想要共享相同的样式,所以我将样式移动到第三个项目,将该项目添加到主应用程序并添加对样式项目的引用。 问题是不会识别我的样式项目。我将样式与项目名称作为前缀,但根本不起作用。

我现在已经到了可以在ResourceDictionary的Path部分输入xaml文件的完整相对路径并且可以工作的地步。但是,如果我将项目移动到另一个文件夹,那么这将失败。我想你可能会问为什么我会这样做而且有原因,比如简单地重构我的项目结构。因此,通过引用而不是文件来更容易地处理资源。

我知道答案是几英寸远,但我找不到任何与另一个项目的样式相关的内容。

到目前为止,我从本网站获得了很好的反馈,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好的,我已经怀疑了!基本上,您将样式添加到单独项目中的一组资源字典中,然后将项目添加到解决方案并在主项目中对其进行引用。我做得那么远,但需要从我的主项目中的资源中引用xaml资源文件。

我尝试使用完整路径名,但是虽然有效,但这不是一个很好的解决方案,因为如果我移动我的项目并重新链接它,该文件将因为无效。

我使用的语法如下:

<ResourceDictionary Source="/StyleResource;component/MSResources/TabControl.xaml" />

其中StyleResources是包含我的共享样式的项目的名称,MSResources是样式项目中包含xaml文件的文件夹,最后的文件名很明显。 我还没有读过关于“组件”参考的内容,但它确实有效,所以我稍后会看一下并更新这篇文章。