UIElement.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 = uIElement.useSystemFocusVisuals;
uIElement.useSystemFocusVisuals = boolean;
Public Property UseSystemFocusVisuals As Boolean
屬性值
Boolean
bool
如果控制項使用系統所繪製的焦點視覺效果,則為 True。 False,如果控制項使用 ControlTemplate 中定義的焦點視覺效果。
The default is false (see Remarks).
範例
此範例顯示 ControlTemplate ,定義 Button的自訂焦點視覺效果。
控制項範本的某些元素不會顯示,以更清楚顯示相關元件。 如需詳細資訊,請參閱 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>
備註
此屬性預設為 false,因此自訂 的 ControlTemplate 會如預期般運作。 不過,所有 XAML 架構控制項都會在其 中 ControlTemplate
將此屬性設定為 true,並使用系統繪製的焦點視覺效果。
若要定義控制項的自訂焦點視覺效果,您需要提供自訂 ControlTemplate。 在 中 ControlTemplate
,執行下列動作:
- 如果您要修改預設 ControlTemplate,請務必將 UseSystemFocusVisuals 屬性設定為 false,以關閉系統焦點視覺效果。 當設定為 false 時,會呼叫 VisualStateManager 中的焦點狀態。
- 定義 的
FocusStates
VisualStateGroup。 - 在群組中
FocusStates
,為每個Focused
、Unfocused
和PointerFocused
定義VisualState。 - 定義焦點視覺效果。