0

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

4

1 回答 1

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);
    }
}
于 2013-12-26T06:55:15.103 回答