Ho un add-in di Outlook (VSTO), in un'area di modulo di Outlook Ho un controllo utente WPF all'interno di ElementHost. Ho un problema che un controllo TextBox nel mio controllo utente non ha la possibilità di annullare ... in alcune configurazioni. Nello specifico, in Windows 7/Outlook 2007, l'annullamento (ad esempio Ctrl-Z) non funziona, anche se tutto il lavoro di copia/copia ecc. È interessante notare che l'annullamento di Windows 8/Outlook 2010 funziona.Casella di testo WPF che non consente l'annullamento quando ospitato in un ElementHost all'interno di un componente aggiuntivo VSTO/Outlook
Il TextBox XAML è:
<TextBox
Name="txtnote"
VerticalScrollBarVisibility="Auto"
SpellCheck.IsEnabled="True"
Text="Topic notes..."
TextWrapping="Wrap"
AcceptsReturn="True" />
Nota: Ho provato a fissare i seguenti attributi per farlo funzionare, ma senza alcun risultato: IsUndoEnabled = "True" UndoLimit = "- 1"
può qualcuno suggerisce perché questo sta accadendo e cosa posso fare per farlo funzionare come previsto?
UPDATE 7 gennaio 2014. ho aggiunto le seguenti KeyBindings alla casella di testo:
<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>
E il risultato è - Cntl-Z/Cntrl-Y continua a non funzionare, tuttavia Alt- G funziona!
Questo è strano, qualcosa nell'impianto idraulico deve essere cambiato. * Excel intercetta tutti gli input da tastiera di finestre secondarie non di Excel nel suo processo. * Per curiosità si annulla dopo aver incollato il lavoro programmaticamente? 'Clipboard.SetText (" Undo me "); TextBox.Paste(); ' –
Ciao Jeremy - grazie per quello. No, annullare (cioè premere Cntl-Z) dopo una pasta programmatica non funziona. Tuttavia ho anche provato a fare l'annullamento dallo stack di annullamento, e questo funziona. es .: if (txtnote.CanUndo == true) {txtnote.Undo();} else {MessageBox.Show ("Can not Undo");} – Marcin
Sp sembra che Control-Z/Control-Y sia stato dirottato da qualche parte. – Marcin