WPF のフォーカス関連小ネタ

コントロールにフォーカスが当たったときのデザイン (デフォルトだと点線が表示される) を変更するには、ControlTemplate を作って FocusVisualStyle にセットする。変化無しにするには {x:Null} でもセットすれば OK。

<Style TargetType="{x:Type Control}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Rectangle Fill="Red" RadiusX="2" RadiusY="2" />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

タブキーでフォーカスを移動させないようにするには KeyboardNavigation.IsTabStop を false にする。

<TextBox KeyboardNavigation.IsTabStop="False" />