wpf图像资源和在运行时在wpf控件中更改图像

Tab*_*Tab 10 c# wpf resources dictionary image

我想知道如何在C#代码后面动态使用字典资源 - 即..我想在运行时从字典中的图像资源加载图像

我有一个程序在WPF字典中有3个图像 - 这些是设置为图像资源的图像.

然后在我的WPF窗口后面的代码中,我想根据用户发起的事件加载三个图像中的任何一个.

没有真正的代码我必须展示,因为我没有做过任何工作.

想法?

Eri*_*ith 20

首先,确保您已经定义了这样的图像资源:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ImageSource x:Key="image1">images/image1.jpg</ImageSource>
    <ImageSource x:Key="image2">images/image2.jpg</ImageSource>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

其次,我假设你的WPF字典在它自己的文件中.现在,您必须确保已将字典合并到主窗口的XAML中(如果您的资源字典在窗口的XAML中定义,请跳过此步骤).在窗口的XAML文件中,确保你有这样的东西:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="myDictionary.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

现在,在您的代码隐藏中,您可以使用FindResource()方法通过它的键名(资源字典中ImageSource上的x:Key属性的值)来定位您的图像资源,如下所示:

imageControl.Source = (ImageSource)FindResource("image1");
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!