更改按钮图像源WPF

时间:2014-07-21 13:35:43

标签: c# wpf button controltemplates

我有一个带模板的按钮。

我想从后面的代码中动态更改图像源。

这是我的代码:

<Button Height="48" HorizontalAlignment="Left" Name="playSequence" VerticalAlignment="Top" Width="49" Click="PlaySequenceButton_Click" Grid.Column="1" Margin="10,0,0,0">
    <Button.Template>
        <ControlTemplate>
            <Border HorizontalAlignment="Center" VerticalAlignment="Center" >
                <Image Name="PlayImage" Source="Play.png" Width="45" Height="41" Stretch="Fill"/>
            </Border>
        </ControlTemplate>
   </Button.Template>
</Button>

当我输入此代码时:

PlayImage.Source = new BitmapImage(new Uri(@"Pause.png", UriKind.Relative));

PlayImage无法识别。

有没有办法以这种方式改变按钮的图像源?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用FindName的{​​{1}}方法:

FrameworkTemplate

答案 1 :(得分:0)

您可能更喜欢通过以下样式中Button的Content属性设置图像:

<Button ...>
    <Button.Style>
        <Style TargetType="Button">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border ...>
                            <Image Source="{TemplateBinding Content}"
                                   Width="45" Height="41" Stretch="Fill"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="Content">
                <Setter.Value>
                    <BitmapImage UriSource="Play.png"/>
                </Setter.Value>
            </Setter>
        </Style>
    </Button.Style>
</Button>

现在您可以通过设置Content属性来简单地更改图像:

playSequence.Content = new BitmapImage(new Uri(@"Pause.png", UriKind.Relative));