RichTextBox提供lot of commands附带的关键手势。
然而,当设置if((i % 3) == 0)
{
//Append a </tr> to close the existing tr.
//Append a new <tr> to begin the new row.
}
时,许多命令没有意义,也不采取任何行动,例如 Ctrl + I , Ctrl + R 。然而,当窗口中的命令使用其中一个关键手势时,当RichtTextBox具有焦点时,窗口中的命令不会触发:
IsReadOnly=True
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:"
mc:Ignorable="d">
<Window.CommandBindings>
<CommandBinding Command="local:MainWindow.MyCommand" Executed="MyCommandBinding_Executed" />
</Window.CommandBindings>
<StackPanel>
<RichTextBox Height="50" IsReadOnly="True" />
<CheckBox Content="This is a checkbox" />
<TextBlock Name="whatsGoingOn" />
</StackPanel>
</Window>
现在也许正确的答案是“不要将RichTextBox与using System.Windows;
using System.Windows.Input;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public static RoutedUICommand MyCommand = new RoutedUICommand(
"My Command",
"MyCommand",
typeof(MainWindow),
new InputGestureCollection() { new KeyGesture(Key.R, ModifierKeys.Control) });
private void MyCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
whatsGoingOn.Text += ".";
}
}
一起使用,而是使用其他东西”,但我们假设我必须或想要使用RichTextBox。
即使RichTextBox具有焦点,我还能做些什么才能使关键手势触发我的命令?
答案 0 :(得分:0)
您可以拦截RichTextBox的PreviewKeyDown事件中的击键。将e.Handled成员设置为true,这将阻止实际处理密钥。
希望有所帮助