none
Aparencia de botão com Trigger continua usando a aparencia padrão do Windows RRS feed

  • Pergunta

  • Não sei se vou conseguir explicar, mas acredito que para quem ja teve esse problema, só em olhar o código vai da pra entender :p

    Estou tentando criar um evento com Trigger para alterar a cor do background quando passar o mouse em cima do botão

    Mas quando coloca o mouse em cima, ele chega a mostra a mudança de cor, mas depois exibe a cor normal do botão do windows

    o Código é o seguinte

    <Window.Resources>
            <Style x:Key="BtStyle" TargetType="Button">
                <Setter Property="Width" Value="120"/>
                <Setter Property="Height" Value="30"/>
                <Setter Property="Background" Value="DarkGreen"/>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="Blue" />
                    </Trigger>
                </Style.Triggers>
    
    
            </Style>
    </Window.Resources>



    • Editado Yuri Schmitz terça-feira, 23 de abril de 2013 14:47
    terça-feira, 23 de abril de 2013 04:05

Todas as Respostas

  • Olá Yuri,

    Eu também demorei para saber como isso funcionava, até que encontrei em um outro fórum uma explicação de que este detalhe do background do botão retornar para o original é porque existe uma trigger nativa no botão... Então para que fique com o background desejado é necessário sobrescrever o template do botão... No seu caso o style ficaria assim:

    <Style x:Key="BtStyle" TargetType="Button">
                <Setter Property="Background" Value="DarkGreen"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border Name="border" BorderThickness="1" Padding="4,2" BorderBrush="DarkGray" CornerRadius="3" Background="{TemplateBinding Background}">
                                <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Name="content"/>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background" Value="Blue" />
                    </Trigger>
                </Style.Triggers>
            </Style>

    Abraço!


    Fabio Rosa.


    • Editado Fabio Rosa sexta-feira, 26 de abril de 2013 00:41 Correção do nome.. Yury para Yuri.
    • Sugerido como Resposta Fabio Rosa sexta-feira, 26 de abril de 2013 14:50
    quinta-feira, 25 de abril de 2013 16:55