如何使用C#Word VSTO插件中的功能区XML自定义快速访问工具栏(QAT),同时仍允许用户随后修改QAT?

如何使用C#Word VSTO插件中的功能区XML自定义快速访问工具栏(QAT),同时仍允许用户随后修改QAT?,c#,ms-word,vsto,ribbon,office-2007,C#,Ms Word,Vsto,Ribbon,Office 2007,我正在使用Visual Studio 2010创建一个VSTO Word 2007 C#加载项。我想向Word的快速访问工具栏(QAT)添加控件,以便用户了解这些控件所公开的功能(它们取代内置的Word功能,即撤消/重做)。我正在使用功能区XML自定义功能区,因此为了向QAT添加控件,我必须使用。不幸的是,这样做会禁用用户通过添加他们希望在那里看到的控件来进一步自定义QAT的能力。(在“自定义快速访问工具栏”下拉菜单中,所有可以添加的命令都显示为灰色,而“更多命令”按钮也显示为灰色。)执行此操作

我正在使用Visual Studio 2010创建一个VSTO Word 2007 C#加载项。我想向Word的快速访问工具栏(QAT)添加控件,以便用户了解这些控件所公开的功能(它们取代内置的Word功能,即撤消/重做)。我正在使用功能区XML自定义功能区,因此为了向QAT添加控件,我必须使用
。不幸的是,这样做会禁用用户通过添加他们希望在那里看到的控件来进一步自定义QAT的能力。(在“自定义快速访问工具栏”下拉菜单中,所有可以添加的命令都显示为灰色,而“更多命令”按钮也显示为灰色。)执行此操作还会从QAT中删除用户先前为方便而放置的任何控件

我用于重现此问题的功能区XML是:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
  <ribbon startFromScratch="true">
  </ribbon>
</customUI>

我想知道的是:

1) 在QAT中添加我自己的控件后,是否有方法允许用户修改QAT?(理想情况下,我会保留用户以前的QAT定制。)或者

2) 有没有其他方法可以让我的控件进入QAT,而不会删除用户的自定义设置,并允许用户随后修改QAT


谢谢

如果您使用
startFromScratch=“true”
您总会遇到这个问题。如果你对撤销/重做这样的事情很在行,为什么不用你的函数覆盖这些按钮呢

如果您使用
startFromScratch=“true”
您总会遇到这个问题。如果你对撤销/重做这样的事情很在行,为什么不用你的函数覆盖这些按钮呢

我认为我将采取的方法是修改用户的自定义QAT文件(对于WinXP):

C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Office\Word.qat


不过,我还没有时间实现它,所以我不确定我是否能够在Word锁定文件之前修改它,或者在Word加载文件之前修改它。也许我可以让Word重新加载它。

我想我要采取的方法是修改用户的自定义QAT文件,该文件位于(对于WinXP):

C:\Documents and Settings\Administrator\Local Settings\Application Data\Microsoft\Office\Word.qat


不过,我还没有时间实现它,所以我不确定我是否能够在Word锁定文件之前修改它,或者在Word加载文件之前修改它。也许我可以让Word重新加载它。

谢谢。不幸的是,我相信Word的undo命令无法重新调整用途:goodfind。是的,撤销/重做是不同的控件。对那些人来说,最好的结果就是他们会残疾。谢谢。不幸的是,我相信Word的undo命令无法重新调整用途:goodfind。是的,撤销/重做是不同的控件。对这些人来说,最好的情况是他们会残疾。