Control.UseSystemFocusVisuals プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
システムによって描画されるフォーカス ビジュアルをコントロールで使用するか、コントロール テンプレートで定義されたビジュアルを使用するかを示す値を取得または設定します。
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。コントロールが ControlTemplate で定義されているフォーカス ビジュアルを使用する場合は false。 既定値は false です。「解説」を参照してください。
例
この例では、Button のカスタム フォーカス ビジュアルを定義する ControlTemplate を示します。
コントロール テンプレートの一部の要素は、関連する部分をより明確にするために表示されません。
<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>
注釈
このプロパティは既定では false であるため、独自のフォーカス ビジュアルを定義するカスタム ControlTemplate は想定どおりに動作します。 ただし、すべての XAML フレームワーク コントロールは、ControlTemplate でこのプロパティを true に設定し、システム描画フォーカス ビジュアルを使用します。
コントロールのカスタム フォーカス ビジュアルを定義するには、カスタム ControlTemplate を指定する必要があります。 ControlTemplate で、次の操作を行います。
- 既定の ControlTemplate を変更する場合は、システム フォーカス ビジュアルをオフにするには、UseSystemFocusVisuals プロパティを false に設定してください。 false に設定すると、VisualStateManager のフォーカス状態が呼び出されます。
-
の VisualStateGroup を定義します
FocusStates
。 - グループで
FocusStates
、、、およびPointerFocused
のFocused
Unfocused
VisualStateを定義します。 - フォーカス ビジュアルを定義します。