Une partie de la valeur par défaut Template
pour la classe Window
est un AdornerDecorator
. Si vous remplacez le Window
par défaut Template
pour ne pas inclure un AdornerDecorator
, le FocusVisualStyle
sur tous les contrôles n'apparaîtra pas.
Même si un Control
a une validité FocusVisualStyle
qui définit un Template
, il n'apparaîtra sans AdornerDecorator
.
Un moyen facile d'accomplir ceci est d'inclure ce Style
dans votre fichier App.xaml sous 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>
Pourquoi est-ce obtenir un -1? –
Probablement parce que c'est inutilement complexe, plein de difficultés telles que s'assurer que vous avez couvert tous les cas possible et être assez difficile à maintenir, juste pour nommer 2. Comparé à un «Style» et «Setter» pour chaque type (qui, bien que fastidieux, c'est simple), votre suggestion semble fou. Je n'ai pas donné le -1. –
Puisqu'il n'a pas fait de commentaire sur l'efficacité de l'une des solutions, nous ne savons pas si les autres idées ont aidé. Si c'est la seule idée qui répond à ses besoins, "fou" serait une représentation inexacte. –