Ich habe ein Outlook-Add-In (VSTO), auf einem Outlook-Formularbereich habe ich ein WPF-Benutzersteuerelement in einem ElementHost. Ich habe ein Problem, dass eine TextBox in meinem Benutzersteuerelement nicht die Rückgängig-Funktion ... in einigen Konfigurationen hat. Insbesondere in Windows 7/Outlook 2007 funktioniert das Rückgängigmachen (dh Strg-Z) nicht, obwohl Cut/Copy usw. alle funktionieren. Interessanterweise funktioniert Windows 8/Outlook 2010 rückgängig.WPF-Textfeld, das Rückgängig macht, wenn gehostet in einem ElementHost innerhalb eines VSTO/Outlook-Add-Ins
Die TextBox XAML ist:
<TextBox
Name="txtnote"
VerticalScrollBarVisibility="Auto"
SpellCheck.IsEnabled="True"
Text="Topic notes..."
TextWrapping="Wrap"
AcceptsReturn="True" />
Hinweis: Ich habe versucht, die folgenden Attribute einstellen, damit es funktioniert, aber ohne Erfolg: IsUndoEnabled = "True" UndoLimit = "- 1"
Can jemand schlägt vor, warum dies geschieht und was ich tun kann, damit es wie erwartet funktioniert?
UPDATE 7. Januar 2014 Ich habe folgende KeyBindings das Textfeld hinzugefügt:
<TextBox.InputBindings>
<KeyBinding Command="ApplicationCommands.Undo" Key="Z" Modifiers="Control" />
<KeyBinding Command="ApplicationCommands.Redo" Key="Y" Modifiers="Control" />
<KeyBinding Command="ApplicationCommands.Undo" Key="G" Modifiers="Alt" />
</TextBox.InputBindings>
Und das Ergebnis ist - Cntl-Z/Strg-Y immer noch nicht funktioniert, jedoch Alt- G funktioniert!
Das ist seltsam, etwas in der Sanitär muss geändert haben. * Excel fängt alle Tastatureingaben von Nicht-Excel-Unterfenstern in seinem Prozess ab. * Aus Neugier wird das Rückgängigmachen nach dem programmatischen Einfügen von Arbeit rückgängig gemacht? 'Clipboard.SetText (" Rückgängig machen "); TextBox.Paste(); ' –
Hallo Jeremy - danke dafür. Nein, das Rückgängigmachen (dh Drücken von Cntl-Z) nach einem programmatischen Einfügen funktioniert nicht. Ich habe aber auch versucht, den Undo-Stack rückgängig zu machen, und das funktioniert. zB: if (txtnote.CanUndo == true) {txtnote.Undo();} else {MessageBox.Show ("Kann nicht rückgängig machen");} – Marcin
Sp scheint das Control-Z/Control-Y entführt zu werden irgendwo. – Marcin