我ComboBox对WPF的控制有问题.
我试图将IsTabStop属性设置为控制但它不能按预期工作.
如果ComboBox不可编辑,则IsTabStop工作正常,但如果ComboBox可编辑,则始终从键盘导航中获得焦点. IsTabStop = false没有效果!
此外,当ComboBox可编辑且IsTabStop为真时,键盘导航到以前的控件是"锁定"..."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>
Run Code Online (Sandbox Code Playgroud)
尝试使用选项卡从第一个文本框导航到最后一个组合框..."cmb1"也使用IsTabStop = False,"cmb2"是好的因为它不可编辑,在"cmb3"上它不可能使用Shift + Tab返回到之前的控件.
DatePicker似乎也有同样的问题.
小智 5
有点晚了,但我前几天看到了同样的问题.我发现KeyboardNavigation.TabNavigation="None"解决了这个问题.
是的,似乎是 ComboBox 的问题,有人向微软提出了这个问题:
看看这里。似乎有一个解决方法。
这是一个解决方法。在窗口/控件的 Loaded 事件中放置以下代码:
var textBox = myCbo.Template.FindName("PART_EditableTextBox", myCbo) as TextBox;
if (textBox != null)
textBox.IsTabStop = myCbo.IsTabStop;
Run Code Online (Sandbox Code Playgroud)
将 myCbo 更改为您的组合框名称。
| 归档时间: |
|
| 查看次数: |
3230 次 |
| 最近记录: |