Переключатель навигационных кнопок в WPF? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть переключатель Loaded 3 на панели «Сетка» с использованием определения столбца (каждый с определенным столбцом c). В это время я заметил, что навигация с помощью клавиши со стрелкой работает неправильно. Но навигация по Tab и Shift + Tab работает в соответствии с ожиданиями. То же самое работает нормально при загрузке переключателя внутри панели стека. После различных проверок я заметил, что проблема возникает при использовании свойства «Горизонтальное выравнивание» кнопки «Радио» как «Левый». Это дает такое же странное поведение для всех опций, кроме stretch. Может кто-нибудь описать, как решить эту проблему.

Я попытался применить Имя группы к переключателю также

 <Grid Grid.Row="0" Margin="5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="12"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="16"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="16"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="12"/>
                            </Grid.ColumnDefinitions>
                            <RadioButton Content="Automatic" Grid.Column="1" 
                                         HorizontalAlignment="Stretch"
                                         IsChecked="{Binding Path=SelectedSizeType, Converter={StaticResource EnumBoolConverter}, ConverterParameter=Apple}"/>
                            <RadioButton Content="Manual" Grid.Column="3" 
                                         HorizontalAlignment="Stretch"
                                         IsChecked="{Binding Path=SelectedSizeType, Converter={StaticResource EnumBoolConverter}, ConverterParameter=Mango}"/>
                            <RadioButton Content="Customizable" Grid.Column="5" x:Name="Customizable" 
                                         HorizontalAlignment="Stretch"
                                         IsChecked="{Binding Path=SelectedSizeType, Converter={StaticResource EnumBoolConverter}, ConverterParameter=Carrot}"/>
                        </Grid>

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете попытаться установить присоединенное свойство KeyboardNavigation.DirectionalNavigation в элементе контейнера группировки, чтобы вызвать определенное поведение навигации в соответствии со значением KeyboardNavigationMode.

Следующий пример устанавливает KeyboardNavigation.DirectionalNavigation в KeyboardNavigationMode.Local на содержащем Grid:

<Grid KeyboardNavigation.DirectionalNavigation="Local" >
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="12"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="16"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="16"/>
    <ColumnDefinition Width="*"/>
    <ColumnDefinition Width="12"/>
  </Grid.ColumnDefinitions>
  <RadioButton Content="Automatic" Grid.Column="1" 
               HorizontalAlignment="Left" />
  <RadioButton Content="Manual" Grid.Column="3" 
               HorizontalAlignment="Left" />
  <RadioButton Content="Customizable" Grid.Column="5" x:Name="Customizable" 
               HorizontalAlignment="Left" />
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...