[英]WPF button icon change programmatically
我想以編程方式更改以下按鈕的圖標
<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#中怎么可能
如果絕對必須使用代碼來更改圖像,則應將數據綁定到Image.Source
屬性,然后更改數據綁定的圖像路徑:
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageSource}" Height="30" Margin="14,0" />
</StackPanel>
您的新屬性的默認值是Resources/dial.png
,您可以像這樣更改它:
ImageSource = "Resources/hangup.png";
當然,您的ImageSource
屬性必須將此更改通知INotifyPropertyChanged
接口 ,以便UI可以更新Image
。 但是,必須說在XAML中使用Trigger
或DataTrigger
更改Image.Source
將是更好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.