私は、次のイベントハンドラを持っている:WPF RichTextBoxのマウス右ボタンのデフォルトのコンテキストメニューを無効にするにはどうすればよいですか?
private void rtb_MouseDown(object sender, MouseEventArgs e)
{
if (e.RightButton == MouseButtonState.Pressed)
{
// Get the nearest TextPointer to the mouse position.
TextPointer location = rtb.GetPositionFromPoint(Mouse.GetPosition(rtb), true);
// Get the nearest word using this TextPointer.
TextRange word = GetWordRange(location);
// Display the word.
tb.Text = word.Text;
e.Handled = true;
}
}
これは、リッチテキストボックスのPreviewMouseDownイベントに配線されています。このイベントが発生し、上記のメソッドが呼び出され、カーソルの下の単語が別のTextBox(tb)に表示されます。
問題は、マウスの右ボタンクリックイベントのデフォルトコンテキストメニュー(カット/コピー/ペーストオプションを含む)が表示されることです。 Handledプロパティをtrueに設定することは役に立ちません。このコンテキストメニューを無効にするにはどうすればよいですか?
EDIT:XAMLコード:
<Window x:Class="rtbTest1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RichTextBox Height="175" HorizontalAlignment="Left" Margin="10,127,0,0" Name="rtb" VerticalAlignment="Top" Width="483" PreviewMouseDown="rtb_MouseDown" />
<TextBox Height="59" HorizontalAlignment="Left" Margin="286,24,0,0" Name="tb" VerticalAlignment="Top" Width="186" />
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="63,56,0,0" Name="btn1" VerticalAlignment="Top" Width="75" Click="btn1_Click" />
</Grid>
</Window>
はい、これは感謝、働い – Mharlin