如何以编程方式更改样式组件

本文关键字:样式 组件 方式更 编程 | 更新日期: 2023-09-27 18:04:45

我制作了一个图像到按钮控件。现在我想用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));