样式化 Telerik WPF NumericUpDown 控件

Styling Telerik WPF NumericUpDown Control

我使用 Telerik WPF 控件并需要将 NumericUpDown 控件添加到我的 UI。问题是在使用时 "as it is" 它在视觉上不适合应用程序的其余部分

<TL;DR> This is a bigger application, that's not been written fully by me. Other people somehow managed to "import" other telerik controls and assign them other styles. Sadly, nobody's used the UpDown control before. </>

我将控件添加到我的 UI:

<telerik:RadNumericUpDown
  Minimum="0"
  Maximum="10"
  SmallChange="1"
  NumberDecimalDigits="0"
  IsInteger="True"
  Value="{Binding Path=Counter}" />

此外,我还向 ResourceDictionary 添加了一些样式:

  <Style TargetType="{x:Type telerikInput:RadNumericUpDown}">
    <Setter Property="Padding" Value="1"/>
    <Setter Property="Margin" Value="2"/>
    <Setter Property="Border.CornerRadius" Value="2" />
    <Setter Property="Border.Background" Value="{StaticResource ControlBackgroundBrush}" />
    <Setter Property="Border.BorderBrush" Value="{StaticResource SolidBorderBrush}" />
    <Setter Property="Border.BorderThickness" Value="1" />
  </Style>

这会处理一些基本的样式功能(边框、边距等)。一般来说,它看起来 "good enough"。只有一个问题 - 当鼠标指针悬停在控件上时,它会变得闪闪发光。这与我的其他控件的行为不一样 - 有没有一种简单的方法可以消除这种影响?

我已经尝试过触发器:

<Style>
...
  <Style.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
      <Setter Property="Foreground" Value="Red" />
      <Setter Property="Border.BorderBrush" Value="Black" />
      ...
  </Style.Triggers>
</Style>

但这并没有起到多大作用。我也试过设置 IncreaseButtonContentTemplate 字段,但结果也不好。

您需要修改默认 ControlTemplates 并从中删除任何 "shiny and glossy" 效果。最简单的方法是将默认模板从 Telerik 安装目录中的 Themes.Implicit 文件夹复制到您的解决方案中,然后根据您的要求进行编辑。

恐怕没有"DisableEffects"属性可以简单地在控件上设置。