【问题标题】:ControlTemplate trigger on a subelement子元素上的 ControlTemplate 触发器
【发布时间】:2011-09-07 14:40:36
【问题描述】:

我想在 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 状态。

你们建议我如何解决这个问题?

【问题讨论】:

    标签: wpf xaml .net-4.0 datepicker


    【解决方案1】:

    如何将触发器设置为 HasKeyboardFocus 而不是 IsFocused?我认为如果任何子元素包含焦点,就会返回 true

    【讨论】:

    • 谢谢,我绑定了 IsKeyboardFocusWithin。工作一种享受!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      相关资源
      最近更新 更多