方法 : 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」を参照してください。

参照

参照

FocusVisualStyle

概念

スタイルとテンプレート

コントロールのフォーカスのスタイルと FocusVisualStyle