【发布时间】:2011-05-24 13:17:11
【问题描述】:
我创建了一个自定义窗口,覆盖了它的 DefaultStyleKey,但我失去了窗口内包含的所有控件的 FocusVisualStyle。甚至自定义 FocusVisualStyle 也不起作用。我在这里错过了什么?
以下是我在 CustomWindow 类的静态 ctor 中覆盖 DefaultStyleKey 的方法:
DefaultStyleKeyProperty.OverrideMetadata( typeof( CustomWindow ), new FrameworkPropertyMetadata( typeof( CustomWindow ) ) );
这是 generic.xaml 中定义的默认样式:
<Style TargetType="{x:Type local:CustomWindow}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomWindow}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
下一步是将 MainWindow 的基本类型更改为 CustomWindow 并添加两个按钮。使用 Tab 键导航时,没有显示焦点矩形。
任何帮助将不胜感激!
【问题讨论】: