我有一个带模板的按钮。
我想从后面的代码中动态更改图像源。
这是我的代码:
<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
无法识别。
有没有办法以这种方式改变按钮的图像源?
答案 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));