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

时间:2011-08-08 17:13:19

标签: c# wpf data-binding controls styles

我将图像制作成按钮控制。现在我想用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。 谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

在您的代码隐藏中,假设您要将图片更改为名为"s.png"的图片:

myImage.Source = new BitmapImage(new Uri(@"s.png", UriKind.Relative));

答案 1 :(得分:0)

使用FindName

((button.Template).FindName("MyImage", button) as Image).Source = new BitmapImage(new Uri("..."));