我想以编程方式更改以下按钮的图标
<Button x:Name="btnSendInvite" Height="32" Background="Transparent" BorderBrush="Transparent"
BorderThickness="0" Cursor="Hand" Margin="1,5" ToolTip="Call" Click="btnSendInvite_Click" >
<Button.Template>
<ControlTemplate TargetType="Button">
<DockPanel>
<DockPanel.Background>
<ImageBrush ImageSource="Resources/button.png" />
</DockPanel.Background>
<StackPanel Orientation="Horizontal">
<Image Source="Resources/dial.png" Height="30" Margin="14,0"></Image>
</StackPanel>
</DockPanel>
</ControlTemplate>
</Button.Template>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Black"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
需要将dial.png
图标更改为hangup.png
。怎么可能在c#
答案 0 :(得分:1)
如果您必须使用代码更改图像,那么您应该数据绑定Image.Source
属性,然后更改数据绑定图像路径:
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageSource}" Height="30" Margin="14,0" />
</StackPanel>
新属性的默认值为Resources/dial.png
,您可以这样更改:
ImageSource = "Resources/hangup.png";
当然,您的ImageSource
媒体资源必须通知INotifyPropertyChanged
Interface更改内容,以便用户界面可以更新Image
。但是,必须说使用Trigger
或DataTrigger
来更改XAML中的Image.Source
将是更好的解决方案。