Часть по умолчанию Template
для класса Window
- это AdornerDecorator
. Если вы переопределите Window
по умолчанию Template
, чтобы не включать AdornerDecorator
, то FocusVisualStyle
на всех элементах управления не появится.
Даже если Control
имеет действительный FocusVisualStyle
, который устанавливает Template
, он не будет появляться без AdornerDecorator
.
Простым способом для этого является включение этого Style
в файл App.xaml под кодом Application.Resources
.
<Style TargetType="{x:Type Window}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="ResizeMode" Value="CanResizeWithGrip">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<Grid>
<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}"/>
<ResizeGrip x:Name="WindowResizeGrip" HorizontalAlignment="Right" IsTabStop="False" Visibility="Collapsed" VerticalAlignment="Bottom"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip"/>
<Condition Property="WindowState" Value="Normal"/>
</MultiTrigger.Conditions>
<Setter Property="Visibility" TargetName="WindowResizeGrip" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
Почему это сделал получить -1? –
Возможно, потому что это излишне сложное, чреватое такими трудностями, как обеспечение того, что вы покрыли каждый возможный край и достаточно сложно поддерживать, просто чтобы назвать 2. По сравнению с «Style» и «Setter» для каждого типа (что, хотя утомительно, просто), ваше предложение звучит безумно. Я не дал -1. –
Поскольку он не комментировал, что какое-либо из решений будет работать, мы не знаем, помогли ли другие идеи. Если это единственная идея, которая отвечает его потребностям, «безумная» будет неточным изображением. –