Изменить источник изображения внутри шаблона кнопки - PullRequest
2 голосов
/ 31 мая 2011

У меня есть кнопка в приложении WPF. Я представляю изображение вместо кнопки. Когда появляется мое приложение, все элементы управления отключаются, пока пользователь не войдет в систему. Я хочу, чтобы мое приложение запускалось с кнопки, на которой изображение серого цвета -> отключено. и когда кто-то вошел в систему, я хочу изменить цвет изображения. но я не могу получить доступ к изображению в шаблоне кнопки. кто-нибудь может помочь? спасибо.

код моей кнопки -

<Button  Height="55" Background="CornflowerBlue" Foreground="White" FontWeight="Normal" Name="Button_Cancel" FontSize="12" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="55" Click="Button_Cancel_Click">
        <Button.Template>
            <ControlTemplate TargetType="{x:Type Button}">
                <StackPanel >
                    <Image Source="Images/myImage.png" Name="Image_Cancel"/>
                </StackPanel>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Button.BitmapEffect" >
                            <Setter.Value>
                                <DropShadowBitmapEffect Color="LightGray" Direction="300" ShadowDepth="5" >
                                </DropShadowBitmapEffect>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property="IsPressed" Value="True">
                        <Setter Property="Button.RenderTransform">
                            <Setter.Value>
                                <TransformGroup>
                                    <ScaleTransform CenterX="0.5" CenterY="0.5" ScaleX="0.970" ScaleY="0.970">
                                    </ScaleTransform>
                                    <!--<SkewTransform AngleY="2" CenterY="-100"/>-->
                                </TransformGroup>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Button.Template>
    </Button>

Ответы [ 2 ]

3 голосов
/ 31 мая 2011

Вы можете подключить изображение с помощью свойства IsEnabled через триггер, тогда вам, вероятно, не нужен код для доступа.

<Image>
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source" Value="Images/Image_Normal.png" />
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Source" Value="Images/Image_Disabled" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>
0 голосов
/ 31 мая 2011

Вы можете сделать это ..

<StackPanel >
     <Image x:name="MyImage" Source="Images/myImage.png" Name="Image_Cancel"/>
</StackPanel>

и когда вы хотите получить доступ к изображению или изменить его

<Setter Property = "Source" TargetName = "MyImage" value = "something"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...