Как Вы отключаете эффекты MouseOver на Кнопку в WPF?

Мультисимвольные константы:

int x = 'ABCD';

Это устанавливает x на 0x41424344 (или 0x44434241, в зависимости от архитектуры).

РЕДАКТИРОВАНИЕ: Эта техника не является портативной, особенно при сериализации интервала Однако, может быть чрезвычайно полезно создать перечисления самодокументирования. например,

enum state {
    stopped = 'STOP',
    running = 'RUN!',
    waiting = 'WAIT',
};

Это делает его намного более простым, если Вы смотрите на необработанный дамп памяти и должны определить значение перечисления, не имея необходимость искать его.

21
задан Dave Clemmer 8 August 2011 в 16:19
поделиться

1 ответ

Посмотрите, что сводится к вашему шаблону управления:

<ControlTemplate TargetType="{x:Type Button}">
   <Button>
      <ContentPresenter/>
   </Button>
</ControlTemplate>

Вы говорите: «Я хочу заменить внешний вид моей кнопки на ... кнопку . " ControlTemplate используется для замены визуального дерева элемента управления. Итак, вы заменяете визуальное дерево существующей кнопки другой кнопкой. Если вы хотите создать кнопку с нуля, попробуйте использовать кнопку SimpleStyles:

<Style TargetType="{x:Type Button}">
   <Setter Property="SnapsToDevicePixels" Value="true"/>
   <Setter Property="OverridesDefaultStyle" Value="true"/>
   <Setter Property="MinHeight" Value="23"/>
   <Setter Property="MinWidth" Value="75"/>
   <Setter Property="Template">
      <Setter.Value>
         <ControlTemplate TargetType="{x:Type Button}">
            <Border Name="Border" CornerRadius="2" BorderThickness="1"
                    Background="#C0C0C0"
                    BorderBrush="#404040">
               <ContentPresenter Margin="2" 
                                 HorizontalAlignment="Center"
                                 VerticalAlignment="Center" 
                                 RecognizesAccessKey="True"/>
            </Border>
            <ControlTemplate.Triggers>
               <Trigger Property="IsKeyboardFocused" Value="true">
                  <Setter TargetName="Border" 
                          Property="BorderBrush" Value="#202020" />
               </Trigger>
               <Trigger Property="IsDefaulted" Value="true">
                  <Setter TargetName="Border" 
                          Property="BorderBrush" Value="#202020" />
               </Trigger>
               <Trigger Property="IsMouseOver" Value="true">
                  <Setter TargetName="Border" 
                          Property="Background" Value="#808080" />
               </Trigger>
               <Trigger Property="IsPressed" Value="true">
                  <Setter TargetName="Border" 
                          Property="Background" Value="#E0E0E0" />
                  <Setter TargetName="Border" 
                          Property="BorderBrush" Value="#606060" />
               </Trigger>
               <Trigger Property="IsEnabled" Value="false">
                  <Setter TargetName="Border" 
                          Property="Background" Value="#EEEEEE" />
                  <Setter TargetName="Border" 
                          Property="BorderBrush" Value="#AAAAAA" />
                  <Setter Property="Foreground" Value="#888888"/>
               </Trigger>
            </ControlTemplate.Triggers>
         </ControlTemplate>
      </Setter.Value>
   </Setter>
</Style>

Обратите внимание, что этот шаблон создает кнопку самым простым из возможных способов: рамкой, содержащей содержимое кнопки. Он не использует другую кнопку, встроенную в шаблон.

41
ответ дан 29 November 2019 в 20:35
поделиться
Другие вопросы по тегам:

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