gpt4 book ai didi

WPF UserControl 在引用项目中找不到 XAML 资源

转载 作者:行者123 更新时间:2023-12-02 02:51:19 27 4
gpt4 key购买 nike

在我的 WPF 项目中,我将用户控件保留在单独的库项目中。用户控件访问单独的 XAML 文件中的资源,如下所示:

<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/ViewResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Local styles here -->
</ResourceDictionary>
</UserControl.Resources>

资源文件 ViewResources.xaml 位于控件库项目中名为 Resources 的文件夹中。它具有默认的构建操作(Page)和自定义工具(MSBuild:Compile)。

问题是当我在 WPF 应用程序中引用控件库并使用用户控件时。在运行时,我收到以下 XamlParseException:

Set property 'System.Windows.ResourceDictionary.Source' threw an exception.

...它包装了 IOException:

Cannot locate resource 'resources/viewresources.xaml'.

我该如何解决这个问题?我尝试将资源文件的构建操作更改为“内容”并将其复制到输出目录(适用于文件和类似的“哑”资源)。但无济于事。另外,它在用户控件中不起作用。

有没有更好的方法来指定路径?

我是否必须将资源文件移动到应用程序项目(我不想,因为它属于用户控件的域)。

最佳答案

找到了。

事实证明有更好的方法来指定路径,Pack URIs 。我将 XAML 更改为以下内容:

<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/RoutingManager;component/Resources/ViewResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<!-- Local styles here -->
</ResourceDictionary>
</UserControl.Resources>

这解决了它。

关于WPF UserControl 在引用项目中找不到 XAML 资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3747972/

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