问题

外层MainWindow.xaml里有一个Container(ContentPresenter),调用一个CreateJob 页面,里面是一行行的<TextBlock>,最后一个是<DataPicker>。

因为会调用不同的子页面,这个Containner(ContentPresenter)需要写清TabNavigation的方式,这里是Local

<ContentPresenter KeyboardNavigation.TabNavigation="Local"
                      Grid.Row="2"
                      Content="{Binding CurrentViewModel}">

而里面这些Textblock设置了一定顺序的Index,最后一个是<DataPicker>的index是最大的。

但是这个datapicker是由一个DataTemplate组成的,其再内层是一个TextBlock和一个Button组成。

问题是KeyboardTab不会走到内层的DataPicker的Button中。

解决

1:检查内层DataPicker的DataTemplate的Button有没有设置Focusable= false

2:外层<DataPicker>要是KeyboardNavigation.TabNavigation="Continue"

<DatePicker Grid.Row="5"
                      Grid.Column="1"
                      Margin="10,5,0,5"
                      Focusable="True"
                      KeyboardNavigation.TabIndex="11"
                      KeyboardNavigation.TabNavigation="Continue"
                      Style="{StaticResource Base_DatePicker_Template}"
                      Text="{Binding CurrentJob.RevisionDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                      HorizontalAlignment="Left"
                      />
View Code

相关文章: