私の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のテキストボックスメニュー項目と同じ動作をどうやって達成できますか?つまり、ユーザーがテキストボックスの外側をクリックしたり、タブキーを押すと、テキストボックスのフォーカスが失われます。
ありがとうございます。
これは私の問題を修正しました。ありがとうございます! – dbostream
よろしくお願いします! :-) – rhe1980
同じメニューに複数のメニューがある場合は、(e.NewFocusがMenuItemの場合のみ)e.Handledを設定するのに役立ちます。こうすることで、同じメニューの別のTextBoxをクリックすることができます。 –