我想在 Pivot 控件上禁用选项卡导航,因为我的控件已经在处理选项卡。我尝试了很多方法,例如设置 IsTabStop=false 和像这样取消对 GotFocus 事件的关注

mPivot->GotFocus += ref new RoutedEventHandler([](Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) { mPivot->Focus(Windows::UI::Xaml::FocusState::Unfocused); });

但这会导致崩溃,参数不正确。这样做的官方方法应该是什么?另外,如何为 ListView 实现类似的东西?

编辑:我找到了一种解决崩溃的黑客方法:我应该人为地将注意力集中在我的控制上,而不是在 Unfocused 上强制使用 Pivot
mPivot->GotFocus += ref new RoutedEventHandler([](Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
    mControl->Focus(Windows::UI::Xaml::FocusState::Programmatic);
});

最佳答案

要完全禁用 Pivot 上的选项卡导航,您需要在 HeaderClipper 样式中禁用一个名为 Pivot 的特殊元素。

获取默认的 Pivot 样式 here ,找到 HeaderClipper 元素并在其上设置 IsTabStop="False"

请注意,如果您的 Pivot 中有设置为接收焦点的控件(即 IsTabStop="True" ),它们仍然可以。如果您不想要这种行为,只需通过将 IsTabStop 设置为 False 来禁用它们。

关于c++ - 禁用对 Pivot 的关注,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45261258/

10-15 06:02