C# 如何在WPF中获取ResourceDictionary.XAML的uri

C# 如何在WPF中获取ResourceDictionary.XAML的uri,c#,wpf,xaml,C#,Wpf,Xaml,如果要在代码中更改ResourceDictionary,必须编写一条长路径,如newURI(@)pack://application:,,,/MyProject;component/System/Language/Window1_EN.xaml“,UriKind.Absolute)。 是否有任何方法可以通过使用文件名(Window11_EN.xaml)来获取其项目路径(/System/Language)?首先,您需要具有可存储文件路径的属性 public string xmlfilepath{g

如果要在代码中更改ResourceDictionary,必须编写一条长路径,如
newURI(@)pack://application:,,,/MyProject;component/System/Language/Window1_EN.xaml“,UriKind.Absolute)

是否有任何方法可以通过使用文件名(Window11_EN.xaml)来获取其项目路径(/System/Language)?

首先,您需要具有可存储文件路径的属性

public string xmlfilepath{get;set;}
现在,您所要做的就是获取应用程序基目录,并与您的路径连接, 作为我创建的一个示例:

 static string path = System.AppDomain.CurrentDomain.BaseDirectory;
        static string debug = Path.GetDirectoryName(path);
        static string bin = Path.GetDirectoryName(debug);
        static string projectfolder = Path.GetDirectoryName(bin);
        public string xamlFilepath = projectfolder + "\\System\\Language\\Window1_EN.xaml";
或者,如果它在bin/debug中,请尝试使用这个

xmlfilepath= System.AppDomain.CurrentDomain.BaseDirectory + "your folder name and file name path will come here";

首先,您需要具有可以存储文件路径的属性

public string xmlfilepath{get;set;}
现在,您所要做的就是获取应用程序基目录,并与您的路径连接, 作为我创建的一个示例:

 static string path = System.AppDomain.CurrentDomain.BaseDirectory;
        static string debug = Path.GetDirectoryName(path);
        static string bin = Path.GetDirectoryName(debug);
        static string projectfolder = Path.GetDirectoryName(bin);
        public string xamlFilepath = projectfolder + "\\System\\Language\\Window1_EN.xaml";
或者,如果它在bin/debug中,请尝试使用这个

xmlfilepath= System.AppDomain.CurrentDomain.BaseDirectory + "your folder name and file name path will come here";

那是我的问题。我有一个Window1_EN.xaml resourcedictionary文件,如下图所示。我们可以使用uri语法根据解决方案资源管理器中的目录获取文件。我们不需要将文件夹复制到Bin/Debug目录中。但它需要手动编写。这是我能编出来的代码吗


那是我的问题。我有一个Window1_EN.xaml resourcedictionary文件,如下图所示。我们可以使用uri语法根据解决方案资源管理器中的目录获取文件。我们不需要将文件夹复制到Bin/Debug目录中。但它需要手动编写。这是我能编出来的代码吗


可能不是这样,因为此解决方案中的目录已编译为exe文件。调试目录中没有目录。这就是为什么我给出了第一个建议,移动到您的项目文件夹中,然后从您的项目文件夹中选择所需的文件夹。试试看。我不想把文件夹移到调试目录中。我想要dll文件中的所有资源。如果你公开你的应用程序,你给出的代码将失败。因为exe中没有Bin/Debug目录。可能不是这样,因为此解决方案中的目录已编译为exe文件。调试目录中没有目录。这就是为什么我给出了第一个建议,移动到您的项目文件夹中,然后从您的项目文件夹中选择所需的文件夹。试试看。我不想把文件夹移到调试目录中。我想要dll文件中的所有资源。如果你公开你的应用程序,你给出的代码将失败。因为exe中没有Bin/Debug目录。