在合并来自不同项目的XAML资源和样式时遇到麻烦



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

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

我知道答案就在几英寸之外,但是我找不到任何与另一个项目的风格相关的东西。

到目前为止,我已经从这个网站得到了很好的反馈,任何帮助都将非常感谢。

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

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

我使用的有效语法如下:

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

其中styleresource是保存我的共享样式的项目的名称,MSResources是样式项目中保存xaml文件的文件夹,文件名在末尾是显而易见的。我还没有读过关于"组件"的参考资料,但它是有效的,所以我稍后会看看它并更新这篇文章。

最新更新