Mam dodatek programu Outlook (VSTO), w regionie formularza programu Outlook Mam formant użytkownika WPF w ramach ElementHost. Mam problem, że TextBox w mojej kontroli użytkownika nie ma możliwości cofania ... w niektórych konfiguracjach. W szczególności w Windows 7/Outlook 2007 cofanie (np. Ctrl-Z) nie działa, nawet jeśli Cut/Copy itd. Wszystkie działają. Co ciekawe, cofanie Windows 8/Outlook 2010 działa.Pole tekstowe WPF, które nie pozwala na Cofanie podczas hostowania w ElementHost w dodatku VSTO/Outlook
TextBox XAML jest:
<TextBox
Name="txtnote"
VerticalScrollBarVisibility="Auto"
SpellCheck.IsEnabled="True"
Text="Topic notes..."
TextWrapping="Wrap"
AcceptsReturn="True" />
Uwaga: Próbowałem ustawienie następujące atrybuty, aby to działało ale bezskutecznie: IsUndoEnabled = "True" UndoLimit = "- 1"
Can ktoś sugeruje, dlaczego tak się dzieje i co mogę zrobić, aby działało zgodnie z oczekiwaniami?
UPDATE 07 stycznia 2014 r Dodałem następujące skróty klawiszowe do pola tekstowego:
<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>
a wynik jest - Cntl-Z/cntrl Y nadal nie działa, jednak Alt G działa!
Ów dziwny, coś w kanalizacji musi się zmienić. * Excel przechwytuje wszystkie wejścia klawiatury z okien potomnych innych niż Excel w swoim procesie. * Z ciekawości robi się cofanie po programowym wklejeniu pracy? 'Clipboard.SetText (" Cofnij mnie "); TextBox.Paste(); ' –
Cześć Jeremy - dzięki za to. Nie, cofanie (to jest wciśnięcie Cntl-Z) po tym, jak programistyczna pasta nie działa. Jednak próbowałem również wykonać cofanie ze stosu cofania, a to działa. tj: if (txtnote.CanUndo == true) {txtnote.Undo();} else {MessageBox.Show ("Can not Undo");} – Marcin
Wygląda na to, że Control-Z/Control-Y został przejęty gdzieś. – Marcin