Control.UseSystemFocusVisuals Propriété
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique si le contrôle utilise des visuels focus qui sont dessinés par le système ou ceux définis dans le modèle de contrôle.
public:
property bool UseSystemFocusVisuals { bool get(); void set(bool value); };
bool UseSystemFocusVisuals();
void UseSystemFocusVisuals(bool value);
public bool UseSystemFocusVisuals { get; set; }
var boolean = control.useSystemFocusVisuals;
control.useSystemFocusVisuals = boolean;
Public Property UseSystemFocusVisuals As Boolean
bool
true si le contrôle utilise des visuels de focus dessinés par le système ; false si le contrôle utilise des visuels focus définis dans le ControlTemplate. La valeur par défaut est false ; voir Remarques.
Cet exemple montre un ControlTemplate qui définit des visuels de focus personnalisés pour un Bouton.
Certains éléments du modèle de contrôle ne sont pas affichés pour rendre les parties pertinentes plus claires.
<Style TargetType="Button">
<!-- Set UseSystemFocusVisuals to false. -->
<Setter Property="UseSystemFocusVisuals" Value="False"/>
...
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="PointerOver">
...
</VisualState>
</VisualStateGroup>
<!-- Add VisualStateGroup for FocusStates. -->
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="FocusVisualWhite"
Storyboard.TargetProperty="Opacity"
To="1"
Duration="0"/>
<DoubleAnimation Storyboard.TargetName="FocusVisualBlack"
Storyboard.TargetProperty="Opacity"
To="1"
Duration="0"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Unfocused"/>
<VisualState x:Name="PointerFocused"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="Border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Margin="3">
<ContentPresenter x:Name="ContentPresenter"
Content="{TemplateBinding Content}"
ContentTransitions="{TemplateBinding ContentTransitions}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
AutomationProperties.AccessibilityView="Raw"/>
</Border>
<!-- Add elements for focus visuals. -->
<Rectangle x:Name="FocusVisualWhite"
IsHitTestVisible="False"
Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}"
StrokeEndLineCap="Square"
StrokeDashArray="1,1"
Opacity="0"
StrokeDashOffset="1.5"/>
<Rectangle x:Name="FocusVisualBlack"
IsHitTestVisible="False"
Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}"
StrokeEndLineCap="Square"
StrokeDashArray="1,1"
Opacity="0"
StrokeDashOffset="0.5"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Cette propriété a la valeur false par défaut, de sorte qu’un ControlTemplate personnalisé qui définit ses propres visuels de focus fonctionne comme prévu. Toutefois, tous les contrôles d’infrastructure XAML définissent cette propriété sur true dans leur ControlTemplate et utilisent des visuels focus dessinés par le système.
Pour définir des visuels de focus personnalisés pour un contrôle, vous devez fournir un ControlTemplate personnalisé. Dans ControlTemplate, procédez comme suit :
- Si vous modifiez un ControlTemplate par défaut, veillez à définir la propriété UseSystemFocusVisuals sur false pour désactiver les visuels focus système. Lorsque la valeur est false, les états de focus dans VisualStateManager sont appelés.
- Définissez un VisualStateGroup pour
FocusStates
. - Dans le
FocusStates
groupe, définissez VisualStates pourFocused
,Unfocused
etPointerFocused
. - Définissez les visuels focus.
Produit | Versions |
---|---|
WinRT | Build 10240, Build 10586, Build 14383, Build 15063, Build 16299, Build 17134, Build 17763, Build 18362, Build 19041, Build 20348, Build 22000, Build 22621, Build 26100 |