当我创建自定义WPF控件时,我通常会保留常用的默认外观和效果。例如,这包括按钮上的默认蓝色悬停。
我创建了一个带有可滚动标签的自定义TabControl。无论出于何种原因,每一侧的RepeatButton(即左右滚动箭头)都没有悬停效果。我找到了几个教程,告诉我如何为控件创建自己的悬停效果,但不幸的是这些示例只是用不同的颜色替换背景(这看起来与动画在透明蓝色渐变同时保持底层背景非常不同)。我怎样才能获得这种悬停效果?有没有办法可以访问标准的悬停效果(可能是故事板?)?
编辑:我刚刚发现,如果我删除我在RepeatButton上放置的自定义Style,我会得到默认的悬停效果。也许问题是 - 我是如何破坏悬停效果的,如何在不破坏它的情况下温和地修改外观?下面是悬挂效果的风格 -
<Style x:Key="TabScrollerRepeatButtonStyle" TargetType="{x:Type RepeatButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border x:Name="testTest" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Margin="1,0" CornerRadius="2">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding ContentControl.Content}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
答案 0 :(得分:2)
攻击这些问题的最佳方法是启动Expression Blend并为要从中复制样式的控件执行“编辑模板”。对滚动条执行此操作将准确显示默认样式的作用,然后您可以将相关位复制到自定义控件样式。