Parte del valore predefinito Template
per la classe Window
è un AdornerDecorator
. Se si sostituisce il valore Template
predefinito per non includere AdornerDecorator
, lo FocusVisualStyle
su tutti i controlli non verrà visualizzato.
Anche se un Control
ha una valida FocusVisualStyle
che imposta un Template
, non verrà visualizzato senza il AdornerDecorator
.
Un modo semplice per eseguire ciò è includere questo Style
nel file App.xaml sotto 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>
fonte
2013-11-04 20:56:07
Perché ha fatto questo prendi un -1? –
Probabilmente perché è inutilmente complesso, pieno di difficoltà come assicurare di aver coperto ogni caso limite ed essere piuttosto difficile da mantenere, solo per nominare 2. Rispetto a uno 'Stile' e 'Setter' per ogni tipo (che, sebbene noioso, è semplice), il tuo suggerimento suona folle. Non ho dato il -1. –
Dal momento che non ha fatto un commento sul fatto che nessuna delle soluzioni funzionerà, non sappiamo se le altre idee hanno aiutato. Se questa è l'unica idea che soddisfa i suoi bisogni, "folle" sarebbe una rappresentazione imprecisa. –