我的标题上有带有 TextBox 的 tabItems。我使用 LostFocus 和 MouseDoubleClick 事件将文本设置为 TextBox。
<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 标题区域或另一个 TabItem,则会发生 LostFocus 事件。单击选项卡项目内容区域不会触发失去焦点事件。
当用户单击文本框外的任何区域时,如何使文本框失去焦点?