UWP - 防止默认的ItemsControl焦点处理

时间:2016-12-14 21:32:46

标签: uwp-xaml

我有一个带有IsTabStop的项目控件="错误"。当我点击ItemsControl中的最后一项下面时,ItemsControl中的第一项是焦点。

我想将焦点设置为列表中的最后一项。使用以下代码,焦点设置为ItemsControl的最后一个子项...直到我释放鼠标,此时第一个项目变为焦点。我需要处理哪个事件/覆盖?

protected override void OnPointerPressed(PointerRoutedEventArgs e)
{
  e.Handled = true;
  var item = VisualTreeHelper.GetChild(Items.ItemsPanelRoot.Children.Last() as DependencyObject, 0) as ContentControl;
  (item.Content as Control).Focus(FocusState.Keyboard);
}

更新

这里有一些说明问题的示例代码。

<ScrollViewer IsTabStop="False">
  <ItemsControl IsTabStop="False">
    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <TextBox Text="{Binding}" HorizontalAlignment="Stretch" />
      </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.Items>
      <x:Int32>1</x:Int32>
      <x:Int32>2</x:Int32>
      <x:Int32>3</x:Int32>
    </ItemsControl.Items>
  </ItemsControl>
</ScrollViewer>

当我单击文本框3下方的空白区域时,文本框1将被聚焦。我想重点关注文本框3。

enter image description here

0 个答案:

没有答案