使用WPF动态更改图像不起作用?

时间:2015-05-15 13:59:40

标签: c# .net wpf wpf-controls caliburn.micro

我想在按钮上动态更改图像。我想我有找到图像所需的东西。我在这里有按钮的som resourcedictionary:

<BitmapImage x:Key="Mark1Empty" UriSource="Marks/Tom1.png"/>
<BitmapImage x:Key="Mark1Chosen" UriSource="Marks/Ny1.png"/>

然后,我在XAML用户控件中创建这样的按钮:

<Button x:Name="Mark1Button"
 Height="30" Width="40" Template="{StaticResource Mark1ButtonTemplate}"
cal:Message.Attach="[Event Click] = [Action SayHello($source, $this)]"/>

ControlTemplate看起来像这样:

   <ControlTemplate x:Key="Mark1ButtonTemplate"  TargetType="{x:Type Button}">
        <Image Name="Mark1ButtonImage"  Source="{StaticResource Mark1Empty}" />
    </ControlTemplate>

之后。在我按下图像的C#代码中。然后它会触发,但图像不会改变。单击图像后显示为空白。

    public void SayHello(object sender, object kravsource)
    {
        var selectedButton = sender as Button;
        if (selectedButton != null)
        {
            Image image = (Image)selectedButton.Template.FindName("Mark1ButtonImage", selectedButton);
            BitmapImage imagePicker = (BitmapImage)Application.Current.FindResource("Mark1Chosen");
            image.Source = new BitmapImage(new Uri(imagePicker.UriSource.ToString(), UriKind.RelativeOrAbsolute));
            image.Stretch = Stretch.Uniform;
        }
    }

0 个答案:

没有答案