我有一个带有各种控件的WPF窗口/表单。
我已将tabindexes设置为所需的顺序,但我的行为很奇怪。
当浏览窗口时,顺序应如下所示:左边的第一个文本框,然后是右边的日期控件,然后是我的标签控件和标签页,然后只有按钮。
但是跳过了标签控件,焦点直接转移到按钮上。如果我在按钮后继续选项卡,则选择标签控件。
以下是xmal。
感谢任何帮助。
<Window xmlns:my="clr-namespace:DevExpress.Xpf.Editors;assembly=DevExpress.Xpf.Core.v10.1" x:Class="TabStopIssue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Row="1" Grid.Column="0" Content="Name"/>
<dxe:ComboBoxEdit Grid.Row="1" Grid.Column="1" Text="" TabIndex="0" />
<Label Grid.Row="2" Grid.Column="0" Content="Description"/>
<dxe:TextEdit Grid.Row="2" Grid.Column="1" TabIndex="1" />
<Label Grid.Row="1" Grid.Column="2" Content="From Date"/>
<dxe:DateEdit Grid.Row="1" Grid.Column="3" TabIndex="2" />
<Label Grid.Row="2" Grid.Column="2" Content="ToDate"/>
<dxe:DateEdit Grid.Row="2" Grid.Column="3" TabIndex="3" />
</Grid>
<Grid Grid.Row="1">
<TabControl TabIndex="4">
<TabItem Header="Tab1" TabIndex="5">
<Grid >
<TextBox>Enter Text Here</TextBox>
</Grid>
</TabItem>
<TabItem Header="Tab2" TabIndex="6">
<Grid >
<TextBox>Enter Text Here</TextBox>
</Grid>
</TabItem>
<TabItem Header="tab3" TabIndex="7">
<Grid >
<TextBox>Enter Text Here</TextBox>
</Grid>
</TabItem>
<TabItem Header="tab4" TabIndex="8">
<Grid >
<TextBox>Enter Text Here</TextBox>
</Grid>
</TabItem>
<TabItem Header="tab5" TabIndex="9">
<Grid >
<TextBox>Enter Text Here</TextBox>
</Grid>
</TabItem>
</TabControl>
</Grid>
<Grid Grid.Row="2">
<StackPanel HorizontalAlignment="Right">
<Button Content="Button1" IsDefault="True" TabIndex="10" />
<Button Content="Button2" TabIndex="11" />
<Button Content="button3" IsCancel="True" TabIndex="12" />
</StackPanel>
</Grid>
</Grid>
</Grid>
</Window>
答案 0 :(得分:4)
要使TabControl显示在Tab键顺序中的正确位置,请修改TabControl元素,如下所示:
<TabControl TabIndex="4" KeyboardNavigation.TabNavigation="Local">
据我所知,您不能使用Tab键来Tab Tabtrol上的各个标签。标准窗口行为是使用箭头键。