更改按钮图像源WPF
本文关键字:WPF 图像 按钮 | 更新日期: 2023-09-27 18:13:58
我有一个带有模板的按钮。
我想从后面的代码动态更改图像源。
下面是我的代码:<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
未被识别。
是否有办法改变按钮的图像源的方式?
您可以尝试使用FrameworkTemplate
的FindName
方法:
playSequence.Template.FindName("PlayImage", playSequence)
.SetValue(Image.SourceProperty,
new BitmapImage(new Uri(@"Pause.png", UriKind.Relative)));
您可能更喜欢通过按钮的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));