◇Pile Up◇ --Keenag Blog--

プログラミング備忘録ブログです。C#、WPFの記事が中心となります。

【XAML】RadioButtonは選択されているボタンだけタブ遷移したい

今回は、XAMLのRadioButtonのタブ遷移の話です。
デフォルトの設定では、グルーピングされているRadioButtonは、選択されている、されていないに関わらず、すべてのRadioButtonにタブフォーカスが当たる仕様となっています。
「選択されているラジオボタンだけタブ遷移させたい」
そんなときありますよね?あります。

そんなときは、RadioButtonの親要素のStackPanelコントロールに以下のプロパティを追加してやればいいんです。

KeyboardNavigation.TabNavigation="Once" 

実際のコードでは次のように使います。

 <Grid>
        <Grid Height="60" VerticalAlignment="Top">
            <StackPanel  Orientation="Horizontal"
                         HorizontalAlignment="Center"
                         KeyboardNavigation.TabNavigation="Once"
                         KeyboardNavigation.TabIndex="0" >
                <RadioButton Content="Button1"
                                 VerticalContentAlignment="Center"
                                 GroupName="RadioGroup"
                                 />
                <RadioButton Content="Button2"
                                 VerticalContentAlignment="Center"
                                 Margin="30,0,0,0"
                                 GroupName="RadioGroup"
                                 />
            </StackPanel >
        </Grid>
        <Button Content="Button" Height="30" Width="75"  TabIndex="1" />
    </Grid>

こうすることで、StackPanelの中の要素には、1度しかタブフォーカスが当たらないように設定できます。 今回はRadioButtonの例で紹介しましたが、ほかのコントロールでも同様に制御が可能です。 以下、MSの公式サイトの情報です。
KeyboardNavigationMode 列挙型
今回はこれで終わりです。それではまた。