我将一个简单的AvalonEditor实例放入一个WPF用户控件中,它忽略了我尝试输入的任何空格。但是其他文字很好。我没有配置任何突出显示或更改控件模板。我是否需要在控件上配置设置以接受空格? 感谢
<avalonEdit:TextEditor
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Auto">
Rob was here
</avalonEdit:TextEditor>
答案 0 :(得分:0)
我有同样的问题。
这是我的解决方法:
public class MyEditor : CSharpCode.AvalonEdit.TextEditor
{
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Space)
{
e.Handled = true;
Document.Insert(CaretOffset, " ");
}
base.OnPreviewKeyDown(e);
}
}
我将事件设置为已处理并添加空格。我认为此编辑器将在keyup或以后的事件上添加空间,该空间被我在放置编辑器的容器上执行的键绑定所覆盖。此行为与默认情况下的文本框不同,后者会自动捕获空间
我知道这有点棘手,但至少目前可以。我想如果我要对另一个键进行另一个键绑定,那么我也必须在回调中处理它。如果有人有更好(更通用)的解决方案,请告诉我。