dbo*_*eam 7 wpf textbox lost-focus menuitem
在我的WPF应用程序中,我想要一个菜单项有一个文本框.我已设法使用以下代码执行此操作:
<Menu Height="23" HorizontalAlignment="Stretch" Name="MainMenu" VerticalAlignment="Top">
<MenuItem Header="File">
<MenuItem Header="Exit" Click="menuItemExit_Click" />
</MenuItem>
<MenuItem Header="Settings">
<MenuItem Header="Some setting" IsCheckable="True" />
<Separator />
<MenuItem>
<MenuItem.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Label Content="Some value:" Margin="0,3,6,0" Padding="0" />
<TextBox Margin="0,0,0,6" Grid.Column="1" />
</Grid>
</MenuItem.Header>
</MenuItem>
</MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)
此代码显示像我预期的菜单项,但如果我开始在文本框中键入一些值,然后移动鼠标(而不是单击)远离文本框菜单项,文本框失去焦点,我无法继续键入,直到我点击再次在文本框上.如何在WinForms中实现与文本框菜单项相同的行为?也就是说,如果用户在文本框外部单击或按Tab键,则文本框仅失去焦点.
提前致谢.
正如我写的,我不确定你如何使用菜单控件.但也许这段代码剪断可以帮助你或给你一个提示:
<TextBox Margin="0,0,0,6" Grid.Column="1" PreviewLostKeyboardFocus="OnPreviewLostKeyboardFocus"/>
Run Code Online (Sandbox Code Playgroud)
和相应的方法:
private void OnPreviewLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
if (MainMenu.IsKeyboardFocusWithin)
{
e.Handled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3877 次 |
| 最近记录: |