在我的WPF應用程序中,我想要一個菜單項有一個文本框。我設法這個使用下面的代碼做:WPF TextBox MenuItem在移動鼠標時失去焦點
<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>
這個代碼顯示菜單項如我預期,但如果我開始輸入一些值到文本框,然後移動鼠標(不點擊)離文本框菜單項,文本框失去焦點,我不能繼續打字,直到我再次單擊文本框。我如何實現與WinForms中的文本框菜單項相同的行爲?也就是說,如果用戶在文本框外單擊或點擊Tab鍵,文本框只會失去焦點。
在此先感謝。
這解決了我的問題,非常感謝! – dbostream 2013-03-19 13:38:06
不客氣! :-) – rhe1980 2013-03-19 13:50:09
如果您在同一個菜單中有多個選項,僅當(e.NewFocus是MenuItem)時纔有助於設置e.Handled。這樣,您仍然可以在同一個菜單中單擊不同的文本框。 – 2015-12-30 20:13:02