如何禁用Silverlight 5文本框撤消/重做

时间:2013-09-09 11:51:14

标签: silverlight-5.0

我只想删除Silverlight 5文本框中的默认行为,即ctrl-z和ctrl-y撤消和重做键入。遗憾的是,Silverlight似乎没有提供WPF中的IsUndoEnabled属性。

1 个答案:

答案 0 :(得分:0)

您可以创建自己的TextBox并覆盖OnKeyDown方法,如下所示:

public partial class DefaultTextBox : TextBox {
    public DefaultTextBox() {
        InitializeComponent();            
    }

    private bool isUndoEnabled = true;
    public bool IsUndoEnabled {
        get {
            return isUndoEnabled;
        }
        set {
            isUndoEnabled = false;
        }
    }

    protected override void OnKeyDown(KeyEventArgs e) {
        if (!isUndoEnabled) {
            if (Keyboard.Modifiers == ModifierKeys.Control) {
                if (e.Key == Key.Z || e.Key == Key.Y) {
                    e.Handled = true;
                }
            }
        }
        base.OnKeyDown(e);
    }
}