У меня проблема с ComboBox
управлением в WPF.
Я пытался установить свойство IsTabStop
для управления, но оно не работает должным образом.
Если ComboBox
недоступно для редактирования, IsTabStop
работает правильно, но если ComboBox
доступно для редактирования, оно всегда отвлекает внимание от навигации по клавиатуре. IsTabStop = false
не имеет никакого эффекта!
Кроме того, когда ComboBox
является редактируемым, а IsTabStop
имеет значение true, навигация с помощью клавиатуры к предыдущему элементу управления "заблокирована" ... "Shift + Tab" не работает!
Это ошибка WPF? Есть ли обходной путь?
Я использую .Net 4.0.
Это пример ...
<Window
x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="250"
Width="600">
<StackPanel
Orientation="Horizontal"
VerticalAlignment="Center">
<TextBox
Width="50"
IsTabStop="True">
</TextBox>
<ComboBox
Name="cmb1"
Margin="10,0,0,0"
Width="50"
IsEditable="True"
IsTabStop="False">
</ComboBox>
<DatePicker
Name="dp1"
Margin="10,0,0,0"
Width="50"
IsTabStop="True">
</DatePicker>
<TextBox
Margin="10,0,0,0"
Width="50"
IsTabStop="False">
</TextBox>
<ComboBox
Name="cmb2"
Margin="10,0,0,0"
Width="50"
IsTabStop="False">
</ComboBox>
<ComboBox
Name="cmb3"
Margin="10,0,0,0"
Width="50"
IsEditable="True"
IsTabStop="True">
</ComboBox>
</StackPanel>
</Window>
попытаться перейти с помощью табуляции от первого текстового поля к последнему комбинированному списку ... "cmb1" сфокусироваться также с IsTabStop = False, "cmb2" нормально, потому что это не редактируется, на "cmb3" невозможно вернуться к предыдущему элементу управления с Shift + Tab.
Также DatePicker, похоже, имеет ту же проблему.