0

ctrl-z と ctrl-y で入力を元に戻したりやり直したりする、Silverlight 5 テキスト ボックスの既定の動作を削除したいだけです。悲しいことに、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 に答える