gpt4 book ai didi

WPF - 使用来自另一个程序集的样式/资源

转载 作者:行者123 更新时间:2023-12-05 01:15:50 28 4
gpt4 key购买 nike

我是 WPF 的新手,正在努力使用位于单独程序集中的样式。这就是我正在做的:-

我有一个带有\Themes 文件夹的类库项目,其中包含一个“generic.xaml”,它合并了\Themes 内的子文件夹中的多个 xaml 文件:-

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Metro\CoreStyles.xaml" />
... etc ...
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

我的解决方案还有一个 WPF 应用程序项目,在这里 App.xaml 合并到我的库项目中的资源中,如下所示:-
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyThemeLibrary;component/Themes/generic.xaml"/>
... etc...

标准的东西到目前为止。

最后,我有第三个项目 - WPF 用户控件库。这些控件使用这些通用样式,通常使用 "Style={StaticResource SomeStyle}" .我可以运行应用程序并且一切看起来都很好,但问题是我在编写用户控件时没有获得设计时支持 - 设计界面基本上是空的。

另一篇SO文章建议在用户控件库项目中添加一个App.xaml,并在资源中合并如上。这有效并且我获得了设计时支持,但是在尝试构建解决方案时出现错误:
Library project file cannot specify ApplicationDefinition element.  

我已尝试将 App.xaml 构建操作从“ApplicationDefinition”更改为“Page”,正如其他地方所建议的那样。这使构建工作,但我失去了设计时支持,因为用户控件无法再看到样式。

有没有办法解决这个问题,或者失败了,另一种使用来自另一个程序集的样式的方法?

提前致谢

安德鲁

最佳答案

错误消息说明了这一点。您不能在库项目中使用“pack://application...”语法。您应该在 wpf 项目中执行此操作。

关于WPF - 使用来自另一个程序集的样式/资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797558/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com