Почему настройка Button.Background в Trigger не работает? - PullRequest
0 голосов
/ 01 марта 2011

Следующий MultiTrigger работает нормально, но если я пытаюсь изменить Button.Background на Red, он не работает.Есть мысли?

<Window.Resources>
        <Style TargetType="Button">
            <Style.Triggers>
                <MultiTrigger>
                    <MultiTrigger.Conditions >
                        <Condition Property="IsMouseOver" Value="True" />
                        <Condition Property="IsFocused" Value="True" />
                    </MultiTrigger.Conditions>
                    <MultiTrigger.Setters>
                        <Setter Property="FontWeight" Value="Bold" />
                    </MultiTrigger.Setters>
                </MultiTrigger>
            </Style.Triggers>            
        </Style>       
    </Window.Resources>

Ответы [ 2 ]

0 голосов
/ 01 марта 2011

Это происходит из-за ControlTemplate кнопки. Если я изменю свою тему ОС на Windows XP с Luna, это будет нормально работать. Взгляните на эти ссылки

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b23e8641-977f-4127-a96a-d329a1ba04e4/

http://www.wiredprairie.us/journal/2006/09/wpf_decorators_build_your_own.html

0 голосов
/ 01 марта 2011

Свойства задаются Приоритетным списком , что означает, что некоторые свойства будут перезаписывать ваши Style свойства.

Так что проверьте, установлен ли Background непосредственно на Buttonпотому что это перезапишет ваш Style фоновый сеттер;Вы можете также рассмотреть возможность использования стиля для фона по умолчанию, например:

<Style TargetType="Button">
    <Setter Property="Background" Value="Green" />
    <Style.Triggers>
        <MultiTrigger>
            <MultiTrigger.Conditions >
                <Condition Property="IsMouseOver" Value="True" />
                <Condition Property="IsFocused" Value="True" />
            </MultiTrigger.Conditions>
            <Setter Property="Background" Value="Red" />
         </MultiTrigger>
    </Style.Triggers>            
</Style>     
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...