我制作了一个图像到按钮控件。现在我想用c#代码改变这个图像。
<Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Grid>
<Image x:Name="MyImage" Source="r.png" Stretch="Fill"/>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True"/>
<Trigger Property="IsDefaulted" Value="True"/>
<Trigger Property="IsMouseOver" Value="True"/>
<Trigger Property="IsPressed" Value="True"/>
<Trigger Property="IsEnabled" Value="False"/>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我想使用c#代码更改MyImage。谢谢你的帮助
使用FindName
:
((button.Template).FindName("MyImage", button) as Image).Source = new BitmapImage(new Uri("..."));
在您的后台代码中,假设您想将图片更改为名为"s.png"
的图像:
myImage.Source = new BitmapImage(new Uri(@"s.png", UriKind.Relative));