WPF文本框在VSTO/Outlook加载项中的ElementHost中托管时不允许撤消

Mar*_*cin 17 .net c# wpf outlook vsto

我有一个Outlook插件(VSTO),在Outlook表单区域我有一个ElementHost中的WPF用户控件.我有一个问题,即我的用户控件中的TextBox没有撤销功能......在某些配置中.特别是在Windows 7/Outlook 2007中,撤消(即Ctrl-Z)不起作用,即使剪切/复制等都可以正常工作.有趣的是Windows 8/Outlook 2010撤消确实有效.

TextBox XAML是:

<TextBox 
    Name="txtnote" 
    VerticalScrollBarVisibility="Auto" 
    SpellCheck.IsEnabled="True"  
    Text="Topic notes..." 
    TextWrapping="Wrap" 
    AcceptsReturn="True" />
Run Code Online (Sandbox Code Playgroud)

注意:我已尝试设置以下属性以使其工作但无济于事:IsUndoEnabled ="True"UndoLimit =" - 1"

任何人都可以建议为什么会发生这种情况以及我能做些什么来使其按预期工作?

更新2014年1月7日. 我在文本框中添加了以下KeyBinding:

<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>
Run Code Online (Sandbox Code Playgroud)

结果是 - Cntl-Z/Cntrl-Y仍然不起作用,但Alt-G确实有效!

小智 1

插件不允许处理核心 Excel 快捷方式。可能是因为这个原因,快捷方式不起作用。