gpt4 book ai didi

c# - 命名空间困惑

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:04 26 4
gpt4 key购买 nike

我有一个 WPF 应用程序,我正在尝试将其转换为 DLL。问题是我在我的 App.XAML 中设置了许多应用程序级资源。在 dll 中,我试图以编程方式设置我的资源。

为了以编程方式加载我的资源,我有这个:

ResourceDictionary myResourceDictionary = new ResourceDictionary();
myResourceDictionary.Source = new Uri("C:\\Users\\Ash\\Documents\\Visual Studio 2010\\Projects\\moo Process Flow Manager\\moo Process Flow Manager\\Resources\\Styles\\Shared.xaml");
Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary);
myResourceDictionary = new ResourceDictionary();
myResourceDictionary.Source = new Uri("C:\\Users\\Ash\\Documents\\Visual Studio 2010\\Projects\\moo Process Flow Manager\\moo Process Flow Manager\\Resources\\Styles\\ToolBar.xaml");
Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary);
myResourceDictionary = new ResourceDictionary();
myResourceDictionary.Source = new Uri("C:\\Users\\Ash\\Documents\\Visual Studio 2010\\Projects\\moo Process Flow Manager\\moo Process Flow Manager\\Resources\\Styles\\ZoomBox.xaml");
Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary);

这一行:

myResourceDictionary.Source = new Uri("C:\\Users\\Ash\\Documents\\Visual Studio 2010\\Projects\\moo Process Flow Manager\\moo Process Flow Manager\\Resources\\Styles\\ZoomBox.xaml");

在运行时抛出以下错误:

'Failed to create a 'Type' from the text 's:ZoomBox'.' Line number '5' and line position '12'.

内部异常:

{"Type reference cannot find type named '{clr-namespace:Arkitec.moo.ProcessFlowManager.Controls}ZoomBox'."}

这是在 zoombox.xaml 中导致错误的行:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:Arkitec.moo.ProcessFlowManager.Controls">

<Style TargetType="{x:Type s:ZoomBox}">

这里是声明它应该在 zoombox.cs 中查看的类的位置:

namespace Arkitec.moo.ProcessFlowManager.Controls
{
public class ZoomBox : Control
{

如果您需要更多信息,请告诉我。

编辑:根据我试过的 Guilammes 回答:

myResourceDictionary.Source = new Uri("Resources/Styles/Shared.xaml", UriKind.Relative);

但是得到如下错误:

Cannot locate resource 'resources/styles/shared.xaml'.

最佳答案

尝试按如下方式设置 shared.xaml 属性:

Build Action --> Page
copy to output directory --> do not copy
custom tool --> MSBuild:Compile

然后按如下方式引用xaml

new System.Uri("/YourNamespace;Resources/Styles/Shared.xaml", System.UriKind.Relative);

关于c# - 命名空间困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9769593/

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