2016-12-31 4 views
1

Я использую элемент управления IntegerUpDown расширенного WPF Toolkit.Repeat Button Style Setter/Triggers не работает

I was able to stylize the arrow buttons in a previous question.

Before Style Перед

After Style После

Я столкнулся с некоторыми дополнительными проблемами стиля:

Я использую PresentationFramework.Aero и Aero2.

<!-- RepeatButton Style --> 
<Style x:Key="{x:Static theme:ResourceKeys.SpinnerButtonStyleKey}" TargetType="RepeatButton">     
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="True"> 
      <Setter Property="Background" Value="Transparent" /> 
      <Setter Property="BorderBrush" Value="Transparent" />    
     </Trigger> 

     <Trigger Property="IsEnabled" Value="False"> 
      <Setter Property="Background" Value="Transparent"/> 
      <Setter Property="BorderBrush" Value="Transparent" /> 
     </Trigger> 

     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Background" Value="DarkBlue"/> 
      <Setter Property="BorderBrush" Value="Transparent" /> 
     </Trigger> 

    </Style.Triggers> 
</Style> 

Ссылка на полный XAML: http://pastebin.com/ETYgHEpz

Ложное Trigger IsEnabled не отменит нетрудоспособных фона или Цвет рамки. Он всегда остается белым, мне он нужен Прозрачный. Однако я могу переопределить Opacity и BorderThickness. (Windows 10):

Disabled Background Win10

Невозможно изменить IsMouseOver цвет фона, всегда светло-голубой. (Windows 10):

MouseOver Color

Windows 7 всегда отображается белая граница, даже если BorderThickeness является 0 и Цвет Прозрачный или {х: Null}:

Win7 Border

Я думаю, что это задерживается с помощью шаблона управления, но IntergerUpDown не имеет стиля RepeatButton в шаблоне управления, и у меня возникли проблемы с его попыткой добавить его. Мне пришлось создать стиль снаружи.

ответ

1

Некоторые свойства не будут работать при настройке через стильные устройства. Это из-за Dependency Property Value Precedence. Попробуйте изменить значения в триггерах ControlTemplate.

+0

В IntegerUpDown отсутствует триггер управляющего шаблона для RepeatButton. Когда я пытаюсь добавить один, он дает предупреждение об ошибке. Мне нужно было создать его глобально за пределами контрольного шаблона. На данный момент мне пришлось удалить Extended Toolkit и самостоятельно создать элемент UpDown с помощью TextBox, Buttons, C# и создать его через xaml. –