方法 : FocusVisualStyle をコントロールに適用する
この例では、FocusVisualStyle プロパティを使用して、フォーカス表示スタイルをリソース内で作成し、このスタイルをコントロールに適用する方法を示しています。
使用例
次の例では、コントロールが user interface (UI) 内でキーボードのフォーカスを受け取ったときにのみ適用される追加のコントロール複合を作成するスタイルを定義しています。 これを行うには、ControlTemplate を使用してスタイルを定義し、FocusVisualStyle プロパティを設定する際に、そのスタイルをリソースとして参照します。
境界線に似た外部四角形を四角形領域の外側に配置します。 他の部分を変更しない限り、スタイルのサイズ指定には、フォーカス表示スタイルが適用される四角形コントロールの ActualHeight および ActualWidth が使用されます。 次の例では、Margin> に負の値を設定して、フォーカスされたコントロールの少し外側に境界線を表示しています。
<Page
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://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」を参照してください。