Свечение кнопки WPF

После нажатия кнопок WPF в нашем приложении они светятся синие, назад к исходному цвету, назад к синему, и т.д. Это, кажется, поведение по умолчанию на Windows Vista/7. Этого не происходит на XP. Совет?

7
задан afuzzyllama 18 April 2013 в 13:57
поделиться

2 ответа

Вам необходимо переопределить шаблон кнопки по умолчанию - http://mark-dot-net.blogspot.com/2007/07/creating -custom-wpf-button-template-in.html должен начать.

В частности, Раздел 3:

<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" />
        <Setter Property="Foreground" Value="#FF4788c8" />
    </Trigger>
    <Trigger Property="IsPressed" Value="True">                   
       <Setter Property="Background" >
           <Setter.Value>
               <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                   <GradientStop Color="#FFFFD190" Offset="0.35"/>
                   <GradientStop Color="Orange" Offset="0.95"/>
                   <GradientStop Color="#FFFFD190" Offset="1"/>
               </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter TargetName="content" Property="RenderTransform" >
            <Setter.Value>
                <TranslateTransform Y="1.0" />
            </Setter.Value>
        </Setter>
    </Trigger>
    <Trigger Property="IsDefaulted" Value="True">
       <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
    </Trigger>
    <Trigger Property="IsFocused" Value="True">
       <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" />
    </Trigger>
    <Trigger Property="IsEnabled" Value="False">
       <Setter TargetName="border" Property="Opacity" Value="0.7" />
       <Setter Property="Foreground" Value="Gray" />
   </Trigger>
</ControlTemplate.Triggers>
9
ответ дан 6 December 2019 в 23:04
поделиться

Во-первых, поскольку вы поднимаете венгерскую нотацию, вот обязательная ссылка на статью Джоэла «Делая неправильный код неправильным» .

В принципе, я соглашусь, что групповой стандарт - это хорошо. На практике мой опыт заключается в том, что им трудно согласиться - например, один человек будет религиозен в открытии родителей в конце линии, в то время как другой будет так же религиозен в том, чтобы иметь их на линии самостоятельно. Их также трудно обеспечить, особенно если нет обзоров кода или другого механизма для обеспечения соответствия кода стандарту. Я бы сказал, стремиться к тому, что работает лучше всего; Например, в моем предыдущем примере любой метод кажется разумно читаемым, так что, возможно, пусть этот слайд, но если вы используете соглашение об именовании переменных, не позволяйте ему скользить, когда кто-то пытается использовать «a» для переменной, содержащей имя клиента!

-121--3438967-

Я думаю, что лучший компромисс, который вы получите в этом случае (и это обсуждаемая тема, конечно), это создать что-то по линии класса ClubStartCoach , который предоставляет свойства ClubManager и Coach .

-121--3832389-

Необходимо переопределить ControlTemplate . В противном случае он использует триггеры, чтобы задать цвета для таких событий, как наведение мыши на него. Если просто установить Фон , то при отсутствии триггера устанавливается фон по умолчанию.

2
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: