我有他们的标题上带有TextBox的tabItems。我使用LostFocus和MouseDoubleClick事件将文本设置为TextBox。WPF TabItem失去焦点事件
<TabControl>
<TabItem Width="50">
<TabItem.Header>
<TextBox Text="text" IsReadOnly="True" LostFocus="TextBox_LostFocus" MouseDoubleClick="TextBox_MouseDoubleClick"/>
</TabItem.Header>
</TabItem>
</TabControl>
private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
TextBox text_box = sender as TextBox;
if (text_box == null) { return; }
text_box.IsReadOnly = false;
text_box.SelectAll();
}
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
TextBox text_box = sender as TextBox;
if (text_box == null) { return; }
text_box.IsReadOnly = true;
}
如果只点击TextBox外部的TabItem标题区域或enother TabItem,就会发生LostFocus事件。 单击标签项目内容区域不会触发丢失的焦点事件。
如何在用户单击TextBox外部的任何区域时使TextBox失去焦点?