IntegerUpDown Стиль Кнопки вверх / вниз - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь стилизовать элемент управления integerupdown (Xceed framework) и мои знания wpf отсутствуют. До сих пор я получил его стиль для всего, кроме OnMouseOver, который по-прежнему выглядит как «обычная» кнопка наведения мыши.

Как я могу установить стиль при наведении мыши? Удалить синий автоматический фон.

MouseOverLooksUgly

    <UserControl.Resources>
    <Style x:Key="{x:Static theme:ResourceKeys.SpinnerButtonStyleKey}" TargetType="RepeatButton">
        <Setter Property="Foreground" Value="#fff" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Background" Value="#555555"></Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="Red"></Setter>
                <Setter Property="Background" Value="Black"></Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
    <Style TargetType="{x:Type xctk:IntegerUpDown}">
        <Style.Resources>
            <SolidColorBrush x:Key="{x:Static theme:ResourceKeys.GlyphNormalForegroundKey}"  Color="#e9e9ee"/>
        </Style.Resources>
    </Style>
</UserControl.Resources>

1 Ответ

1 голос
/ 25 октября 2019

Вы должны определить пользовательский стиль RepeatButton для ресурса themes:ResourceKeys.SpinnerButtonStyleKey:

<xctk:IntegerUpDown
            xmlns:themes="clr-namespace:Xceed.Wpf.Toolkit.Themes;assembly=Xceed.Wpf.Toolkit"
            xmlns:chrome="clr-namespace:Xceed.Wpf.Toolkit.Chromes;assembly=Xceed.Wpf.Toolkit">
    <xctk:IntegerUpDown.Resources>
        <Style x:Key="{x:Static themes:ResourceKeys.SpinnerButtonStyleKey}" 
                       TargetType="RepeatButton">
            <Setter Property="Background" Value="{DynamicResource {x:Static themes:ResourceKeys.ButtonNormalBackgroundKey}}" />
            <Setter Property="BorderBrush" Value="{DynamicResource {x:Static themes:ResourceKeys.ButtonNormalOuterBorderKey}}" />
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="Padding" Value="2,2" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="RepeatButton">
                        <Grid>
                            <chrome:ButtonChrome x:Name="Chrome"
                                       BorderBrush="{TemplateBinding BorderBrush}" 
                                       Background="{TemplateBinding Background}"                                                                  
                                       CornerRadius="{DynamicResource {x:Static themes:ResourceKeys.SpinButtonCornerRadiusKey}}"
                                       RenderEnabled="{TemplateBinding IsEnabled}"
                                       RenderMouseOver="False"
                                       RenderNormal="True"
                                       RenderPressed="{TemplateBinding IsPressed}"
                                       SnapsToDevicePixels="true" />
                            <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                                      Margin="{TemplateBinding Padding}" />
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" Value="Red" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </xctk:IntegerUpDown.Resources>
</xctk:IntegerUpDown>
...