子元素上的ControlTemplate触发器

时间:2011-09-07 14:40:36

标签: wpf xaml .net-4.0 datepicker

我想在有焦点时增加DatePicker边框的大小。在TextBox样式中,当与ControlTemplate中的边框BorderBase一起使用时,以下内容可以很好地工作。

<ControlTemplate.Triggers>
    <Trigger Property="UIElement.IsFocused" Value="true">
        <Setter Property="BorderThickness" TargetName="BorderBase" Value="2"/>
        <Setter Property="Padding" TargetName="BorderBase" Value="3"/>
    </Trigger>
</ControlTemplate.Triggers>

对于DatePicker,这不起作用,因为DatePicker内的DatePickerTextBox具有实际焦点。在DatePicker style page上列出了视觉状态。 TextBox确实具有Focused状态,但DatePicker仅在输入无效时具有Focused状态。

你们怎么建议我解决这个问题?

2 个答案:

答案 0 :(得分:2)

如何在HasKeyboardFocus而非IsFocused上设置触发器?我认为如果任何子元素包含焦点,那么将返回true

答案 1 :(得分:1)

如何命名TextBox并指定相应的Trigger.SourceName