XAML 图像资源



我添加了一些图片作为我的项目资源(例如,我将它们放入"ressources"文件夹中)。现在我将它们用于:

<Image Name="_ImageName" Width="100" Height="100" Source="ResourcesHalloPicA.png"/>
<Image Name="_ImageName" Width="100" Height="100" Source="ResourcesHalloPicB.png"/>

。等等。

想象一下,现在我将文件夹"资源"更改为"我的资源"。问题 我必须在 XAML 代码中的任何地方更改它。有没有更好的方法存在?在 c#-Code 中,我会从 typ 字符串声明一个成员变量,如下所示:

privat _FolderName = "Resources";

并通过以下方式使用此成员变量:

Image newImage = Image.FromFile(_FolderName +"HalloPicA.png");

希望我的问题很清楚。

可以使用属性绑定和值转换器来执行此操作。例如:

    <Image Name="_ImageName" Width="100" Height="100" Source="{Binding Path=imgA, Converter={StaticResource imgPathConverter}}" />

其中,imgPathConverter 是可以在"限定"图像路径中转换图像名称的类。

你可以做的是创建单独的资源字典,或者把它放在Application.Resources中,有BitmapImage资源:

<Application ...>
    <Application.Resources>
        <BitmapImage UriSource="/MyAssemblyName;component/MyPath/myImage.png" x:Key="imageKey"/>
    </Application.Resources>
</Application>

然后当你想使用它时

<Image Width="100" Height="100" Source="{StaticResource imageKey}"/>

这样,当文件夹更改时,您只需在一个文件中更改它

最新更新