XAML中的C#WPF路径,用于将文件加载到资源字典中

时间:2016-11-12 21:20:42

标签: c# wpf xaml dictionary

我的xaml代码中有以下资源字典,我想缩短路径,使其不是整个目录。在不必拼出整个文件结构的情况下指定此文件夹的正确方法是什么?

<UserControl.Resources>
    <ResourceDictionary>
        <BitmapImage x:Key="1" UriSource="C:/Users/Nick/Documents/Software/i Ching/iChing/iChing/Hexagram Images/1.jpg"/>
        <BitmapImage x:Key="2" UriSource="C:/Users/Nick/Documents/Software/i Ching/iChing/iChing/Hexagram Images/2.jpg"/>
        <BitmapImage x:Key="3" UriSource="C:/Users/Nick/Documents/Software/i Ching/iChing/iChing/Hexagram Images/3.jpg"/>
        <BitmapImage x:Key="4" UriSource="C:/Users/Nick/Documents/Software/i Ching/iChing/iChing/Hexagram Images/4.jpg"/>
    </ResourceDictionary>
</UserControl.Resources>

2 个答案:

答案 0 :(得分:1)

您可以使用BitmapImage

BaseUri属性
<BitmapImage x:Key="1" BaseUri="{x:Static local:GlobalPaths.BasePath}"  UriSource="1.jpg"/>


public class GlobalPaths
{
   public static readonly Uri BasePath = new Uri(@"C:/Users/Nick/Documents/Software/i Ching/iChing/iChing/Hexagram Images/");
}

或者你可以像这样为每个文件设置路径:

<BitmapImage x:Key="1" UriSource="{x:Static local:GlobalPaths.File1}"/>

..或者如果是选项,则使用siteoforigin设置相对于程序集的路径。 这是一个示例,如果文件“1.jpg”与应用程序exe在同一文件夹中,它会是什么样子:

<BitmapImage x:Key="1"   UriSource="pack://siteoforigin:,,,/1.jpg"/>

答案 1 :(得分:0)

我认为正确的方法是将它们添加到单独文件夹中的解决方案中。在属性中设置构建操作资源 enter image description here