Uwp 如何使ContentControl通过鼠标指针获得焦点?

Uwp 如何使ContentControl通过鼠标指针获得焦点?,uwp,c++-winrt,Uwp,C++ Winrt,我有下一页 我可以按预期使用键盘(Tab)在控件之间导航:按钮->CC->CC2,所有这些控件都生成了GotFocus/LostFocus事件。但是当我试图用鼠标指针导航时,只有按钮生成了GotFocus/LostFocus事件。我错过了什么?非常感谢。我可以复制您的问题。ContenControl继承控件,所以您可以使用它在PointPressed事件中获取焦点 此外,ContentControl将在PointerPressed事件结束后失去焦点,换句话说,GotFocus和LostFoc

我有下一页



我可以按预期使用键盘(
Tab
)在控件之间导航:
按钮->CC->CC2
,所有这些控件都生成了
GotFocus/LostFocus
事件。但是当我试图用鼠标指针导航时,只有
按钮
生成了
GotFocus/LostFocus
事件。我错过了什么?非常感谢。

我可以复制您的问题。ContenControl继承控件,所以您可以使用它在PointPressed事件中获取焦点

此外,ContentControl将在PointerPressed事件结束后失去焦点,换句话说,GotFocus和LostFocus()将持续触发。因此,需要设置e.Handled=true以防止触发LostFocus()

例如: 在页面的构造函数中

FindName(L“CC”).as().PointerPressed([](IInspectable sender,pointErrorutedEventArgs const&args){
sender.as().Focus(FocusState::programmative);
args.Handled(true);
});
FindName(L“CC2”).as().PointerPressed([](IIInspectable sender,PointerRoutedEventArgs常量和参数){
sender.as().Focus(FocusState::programmative);
args.Handled(true);
});

问题被标记为C++/WinRT。这个答案使用了一些不是C++的编程语言。@ IcTestTo,我很抱歉我忽略了它,我会把它改成C++的答案。