功能表群組

功能表群組會組織功能表或工具列內的相關命令和控制項。

簡介

透過 MenuGroup 標記元素公開的功能表群組控制項是功能表型控制項中專案或命令群組的邏輯容器,包括 內容快顯 迷你工具列。

您可以透過相關聯 Command 宣告的 LabelTitle 屬性或 Command.LabelTitle 屬性,為功能表群組指定標籤。 指派給 LabelTitle 的值會轉譯為類別標頭。

下列範例示範分割 按鈕 控制項的命令標記,其中包含兩個功能表群組命令宣告。

<!-- SplitButton -->
<Command Name="cmdSplitButtonGroup"
         Symbol="cmdSplitButtonGroup"
         Comment="SplitButton Group"
         LabelTitle="SplitButton"/>
<Command Name="cmdSplitButton"
         Symbol="cmdSplitButton"
         Comment="SplitButton"
         LabelTitle="SplitButton"/>
<Command Name="cmdSBButtonItem"
         Symbol="cmdSBButtonItem"
         Comment="SBButtonItem"
         LabelTitle="SB ButtonItem"/>
<Command Name="cmdSBButton1"
         Symbol="cmdSBButton1"
         Comment="SBButton1"
         LabelTitle="SB Button">
  <Command.LargeImages>
    <Image Source="res/copyL_32.bmp"/>
  </Command.LargeImages>
  <Command.SmallImages>
    <Image Source="res/copyS_16.bmp"/>
  </Command.SmallImages>
  <Command.LargeHighContrastImages>
    <Image Source="res/copyLHC_32.bmp"/>
  </Command.LargeHighContrastImages>
  <Command.SmallHighContrastImages>
    <Image Source="res/copySHC_16.bmp"/>
  </Command.SmallHighContrastImages>
</Command>
<Command Name="cmdSBMajorItems"
         Comment="Major Items Category"
         LabelTitle="Major Items"/>
<Command Name="cmdSBStandardItems"
         Comment="Standard Items Category"
         LabelTitle="Standard Items"/>

下列範例示範具有三個MenuGroup元素宣告之SplitButton元素所需的標記,其中兩個標記與上一個範例中的 Menu Group 命令相關聯。 MenuGroup元素的Class屬性是用來指定功能表項目的大小。

<Group CommandName="cmdSplitButtonGroup">
  <SplitButton CommandName="cmdSplitButton">
    <SplitButton.ButtonItem>
      <Button CommandName="cmdSBButtonItem"/>
    </SplitButton.ButtonItem>
    <SplitButton.MenuGroups>
      <MenuGroup CommandName="cmdSBMajorItems" 
                 Class="MajorItems">
        <Button CommandName="cmdSBButton1"/>
        <Button CommandName="cmdSBButton1"/>
      </MenuGroup>
      <MenuGroup CommandName="cmdSBStandardItems"
                 Class="StandardItems">
        <Button CommandName="cmdSBButton1"/>
        <Button CommandName="cmdSBButton1"/>
      </MenuGroup>
      <MenuGroup Class="StandardItems">
        <Button CommandName="cmdSBButton1"/>
        <Button CommandName="cmdSBButton1"/>
      </MenuGroup>
    </SplitButton.MenuGroups>
  </SplitButton>
</Group>

下列螢幕擷取畫面說明功能表 (搭配三個功能表群組控制項) ,這些控制項是從先前範例中的標記產生的。

具有三個功能表群組控制項的功能表螢幕擷取畫面。

功能區架構會定義功能表組控制項 的屬性索引鍵 集合。

一般而言,功能表群組屬性會在功能區 UI 中更新,方法是透過呼叫 IUIFramework::InvalidateUICommand 方法,使與控制項相關聯的命令失效。 無效事件是由 IUICommandHandler::UpdateProperty 回呼方法所定義的屬性更新處理。

IUICommandHandler::UpdateProperty回呼方法不會執行,而且應用程式會查詢更新的屬性值,直到架構需要屬性為止。 例如,當索引標籤啟動時,以及功能區 UI 中顯示的控制項,或顯示工具提示時。

注意

在某些情況下,可以透過 IUIFramework::GetUICommandProperty 方法擷取屬性,並使用 IUIFramework::SetUICommandProperty 方法進行設定。

 

下表列出與功能表群組控制項相關聯的屬性鍵。

屬性索引鍵 備註
UI_PKEY_Enabled 支援 IUIFramework::GetUICommandPropertyIUIFramework::SetUICommandProperty
UI_PKEY_Keytip 只能透過失效來更新。
UI_PKEY_Label 只能透過失效來更新。
UI_PKEY_TooltipDescription 只能透過失效來更新。
UI_PKEY_TooltipTitle 只能透過失效來更新。

 

Windows 功能區架構控制項程式庫

MenuGroup 標記專案