VSTO 功能区 xml 在 'template' 中为每个控件类型设置回调属性
VSTO ribbon xml set callback attribute in 'template' for each control type
我有一个使用 XML 作为功能区的 C# VSTO Excel 加载项。其中有多个 ToggleButton,它们都使用在 'getLabel'、'getKeytip'、'getScreentip'、'getSupertip'、'getPressed' 和 [=32 中使用的相同功能=] 回调。然后这些函数 return 正确的值或根据控件的 ID 执行正确的代码。
是否可以为这些设置这些属性的元素创建一个 'template',但允许我提供 ID?
例如,这是我目前拥有的:
<toggleButton
id="tb1"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb2"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb3"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb4"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb5"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
而且我希望能够指定 'template':
<toggleButtonTemplate
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
然后将我的色带 XML 更新为:
<toggleButtonTemplate
id="tb1"/>
<toggleButtonTemplate
id="tb2"/>
<toggleButtonTemplate
id="tb3"/>
<toggleButtonTemplate
id="tb4"/>
<toggleButtonTemplate
id="tb5"/>
这样的事情可能吗?如果是这样,我将如何去做?
是的,这是可能的。使用 .net BCL 处理 XML 文件。您可以在运行时生成功能区 XML,并使用 XmlDocument class from the System.XML
namespace. See Adding attributes to an XML node 动态地向 XML 文件添加属性以获取更多信息。
我有一个使用 XML 作为功能区的 C# VSTO Excel 加载项。其中有多个 ToggleButton,它们都使用在 'getLabel'、'getKeytip'、'getScreentip'、'getSupertip'、'getPressed' 和 [=32 中使用的相同功能=] 回调。然后这些函数 return 正确的值或根据控件的 ID 执行正确的代码。
是否可以为这些设置这些属性的元素创建一个 'template',但允许我提供 ID?
例如,这是我目前拥有的:
<toggleButton
id="tb1"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb2"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb3"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb4"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
<toggleButton
id="tb5"
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
而且我希望能够指定 'template':
<toggleButtonTemplate
getLabel="GetLabel"
getKeytip="GetKeytip"
getScreentip="GetScreentip"
getSupertip="GetSupertip"
getPressed="Togglebutton_GetPressed"
onAction="Togglebutton_OnAction"/>
然后将我的色带 XML 更新为:
<toggleButtonTemplate
id="tb1"/>
<toggleButtonTemplate
id="tb2"/>
<toggleButtonTemplate
id="tb3"/>
<toggleButtonTemplate
id="tb4"/>
<toggleButtonTemplate
id="tb5"/>
这样的事情可能吗?如果是这样,我将如何去做?
是的,这是可能的。使用 .net BCL 处理 XML 文件。您可以在运行时生成功能区 XML,并使用 XmlDocument class from the System.XML
namespace. See Adding attributes to an XML node 动态地向 XML 文件添加属性以获取更多信息。