UIElement.UseSystemFocusVisuals Propriété
Définition
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 de focus dessinés par le système ou des visuels de focus 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 = uIElement.useSystemFocusVisuals;
uIElement.useSystemFocusVisuals = boolean;
Public Property UseSystemFocusVisuals As Boolean
Valeur de propriété
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 de focus définis dans le ControlTemplate.
La valeur par défaut est false (voir Remarques).
Exemples
Cet exemple montre un ControlTemplate qui définit des visuels de focus personnalisés pour un objet Button.
Certains éléments du modèle de contrôle ne sont pas affichés pour rendre les parties pertinentes plus claires. Pour plus d’informations, consultez Styles XAML.
<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>
Remarques
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 leurs ControlTemplate
visuels de 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 de focus système. Lorsque la valeur est false, les états du focus dans VisualStateManager sont appelés.
- Définissez un VisualStateGroup pour
FocusStates
. - Dans le
FocusStates
groupe, définissez un VisualState pour chacun desFocused
éléments ,Unfocused
etPointerFocused
. - Définissez les visuels de focus.