как программно изменить компонент стиля - PullRequest
0 голосов
/ 08 августа 2011

Я превращаю изображение в кнопку управления. Теперь я хочу изменить это изображение с помощью кода 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>

Я хочу изменить MyImage с помощью кода C #. спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 08 августа 2011

Использование FindName:

((button.Template).FindName("MyImage", button) as Image).Source = new BitmapImage(new Uri("..."));
0 голосов
/ 08 августа 2011

В вашем коде, скажем, вы хотите изменить изображение на изображение с именем "s.png":

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