这是针对UWP应用的。我只找到一种方法来检查TextBox是否未聚焦,但无法正常工作。我想检查TextBox是否有闪烁的光标,以便您可以在焦点丢失时(没有闪烁的光标)键入它。
if (textBoxCool.FocusState == FocusState.Unfocused)
{
// Do something
}
else
{
// Do something else
}
答案 0 :(得分:1)
TextBox具有 LostFocus 和 GettingFocus 事件。当TextBox的光标闪烁时,它将触发GettingFocus事件,而当光标没有闪烁时,它将触发LostFoucs事件。
.xaml:
<TextBox x:Name="textBoxCool" Width="200" LostFocus="TextBox_LostFocus" GettingFocus="TextBox_GettingFocus"></TextBox>
.cs
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
//Do something
}
private void TextBox_GettingFocus(UIElement sender, GettingFocusEventArgs args)
{
//Do something else
}
答案 1 :(得分:0)
我认为您应该使用事件来使其正常工作。您不想使用这样的条件,因为那样您以后仍然需要一个事件来触发它。有一个名为"OnPointerEntered"
的事件和另一个"OnPointerExited"
的事件,您可以用它代替您的if-else
语句。
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.control.onpointerentered
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.control.onpointerexited
如果焦点已设置为控件或已经在控件上,则焦点将返回true
的布尔值,而如果控件false
将焦点设为IS NOT FOCUSABLE
。这意味着您不能在类似这样的条件中使用它,除非您将textBoxCool
设置为在代码中其他地方无法聚焦。