この例では、FocusVisualStyle プロパティを使用して、リソースにフォーカス表示スタイルを作成し、そのスタイルをコントロールに適用する方法を示します。
例
次の例では、コントロールがユーザー インターフェイス (UI) にフォーカスされている場合にのみ適用される追加のコントロール合成を作成するスタイルを定義します。 これは、ControlTemplateを使用してスタイルを定義し、FocusVisualStyle プロパティを設定するときにそのスタイルをリソースとして参照することによって実現されます。
境界線に似た外部の四角形は、四角形領域の外側に配置されます。 特に変更しない限り、スタイルのサイズ変更では、フォーカス表示スタイルが適用される四角形コントロールの ActualHeight と ActualWidth が使用されます。 次の使用例は、Margin の負の値を設定して、フォーカスされたコントロールの外側に境界線を少しだけ表示します。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Page.Resources>
<Style x:Key="MyFocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="-2" StrokeThickness="1" Stroke="Red" StrokeDashArray="1 2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Page.Resources>
<StackPanel Background="Ivory" Orientation="Horizontal">
<Canvas Width="10"/>
<Button Width="100" Height="30" FocusVisualStyle="{DynamicResource MyFocusVisual}">
Focus Here</Button>
<Canvas Width="100"/>
<Button Width="100" Height="30" FocusVisualStyle="{DynamicResource MyFocusVisual}">
Focus Here</Button>
</StackPanel>
</Page>
FocusVisualStyle は、明示的なスタイルまたはテーマ スタイルから取得されるコントロール テンプレート スタイルに対する追加です。コントロールのプライマリ スタイルは、ControlTemplate を使用し、そのスタイルを Style プロパティに設定することで引き続き作成できます。
フォーカス可能な要素ごとに異なるスタイルを使用するのではなく、テーマまたは UI 全体でフォーカス表示スタイルを一貫して使用する必要があります。 詳細については、「コントロールのフォーカスのスタイル設定 」および「FocusVisualStyle」を参照してください。
こちらも参照ください
.NET Desktop feedback