3

佈局組時,Windows功能區框架支持some predefined layouts。其中一個佈局需要四個按鈕稱爲FourButtonsWindows 7功能區:如何指定「四個按鈕,兩個大,兩個小」?

此佈局支持3種不同的尺寸,大中等,和。在每一種情況下,它給人的佈局:

enter image description here

enter image description here

enter image description here

現在我使用FourButtons預定義模板在我的XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<Application xmlns="http://schemas.microsoft.com/windows/2009/Ribbon"> 
    ... 
    <Application.Views> 
     <Ribbon> 
     ... 
     <Ribbon.Tabs> 
      <Tab CommandName="tabHome"> 
       <Group CommandName="grpActivity" SizeDefinition="FourButtons"> 
        <Button CommandName="cmdStartWorking" /> 
        <Button CommandName="cmdStopWorking" /> 
        <Button CommandName="cmdPrint" /> 
        <Button CommandName="cmdDuplicateTicket" /> 
       </Group> 
      </Tab> 
     </Ribbon.Tabs> 

     </Ribbon> 
    </Application.Views> 
</Application> 

而且你可以看到行

<Group CommandName="grpActivity" SizeDefinition="FourButtons"> 

指定的FourButtons佈局模板。

而且我的佈局是FourButtons

alt text http://i37.tinypic.com/15oupgk.jpg

除了我不想FourButtons佈局,我想 「四個按鍵,兩個大兩小」。

以同樣的方式,有ThreeButtons-OneBigAndTwoSmall

enter image description here

而且還有一個FiveButtons

enter image description here

我希望有一個FourButtons-TwoBigTwoSmall,我可以手動實體模型:

alt text http://i38.tinypic.com/30uy9ah.jpg

不幸的是,陳述性編程that Microsoft invented for creating custom layouts讓我爲程序員困惑。

任何人都可以解釋頁面底部的聲明性語言示例,並拿出一個FourButton-TwoBigTwoSmall template?

注意:所有漂亮的圖形,格式,鏈接和東西都用來吸引松鼠 - 喜歡閃亮的圖形。如果你真的讀到這麼遠,我可以實際上使用你的幫助。

回答

2

你應該使用BigButtonsAndSmallButtonsOrInputs SizeDefinition

例如

 <Group CommandName="cmdGroupBatch" SizeDefinition="BigButtonsAndSmallButtonsOrInputs"> 
     <ControlGroup> 
      <Button CommandName="cmdButtonGetBatch" /> 
      <Button CommandName="cmdButtonPutBatch" /> 
     </ControlGroup> 
     <ControlGroup> 
      <Button CommandName="cmdButtonSaveBatch" /> 
      <Button CommandName="cmdButtonDiscartBatch" /> 
     </ControlGroup> 
     </Group> 

只要檢查一下,如果你的組在你的Tab.ScalingPolicy中有Size =「Large」。

+0

其實我有最終想通了。這絕對不是一件容易的事。但我會給你一個幾乎同樣好的解決方案。也因爲你是唯一一個在41個視圖中迴應的人。 – 2010-11-19 19:45:48

1

我終於弄明白了。

首先是控制圖,它要求組(在本例中)有四個按鈕。通過在ControlNameMap中有四個條目,我們要求使用此大小定義的組實際上有四個按鈕。

<ControlNameMap> 
    <ControlNameDefinition Name="button1"/> 
    <ControlNameDefinition Name="button2"/> 
    <ControlNameDefinition Name="button3"/> 
    <ControlNameDefinition Name="button4"/> 
</ControlNameMap> 

的四個按鈕給出別名:

  • button1
  • button2
  • button3
  • button4

,以便它們可以在下面的定義中引用。第一個是大模板

<GroupSizeDefinition Size="Large"> 
    <ControlSizeDefinition ControlName="button1" ImageSize="Large" IsLabelVisible="true" /> 
    <ControlSizeDefinition ControlName="button2" ImageSize="Large" IsLabelVisible="true" /> 
    <ColumnBreak ShowSeparator="true"/> 
    <ControlSizeDefinition ControlName="button3" ImageSize="Large" IsLabelVisible="true" /> 
    <ControlSizeDefinition ControlName="button4" ImageSize="Large" IsLabelVisible="true" /> 
</GroupSizeDefinition> 

這引起兩個大按鈕,一個分離器,另有2層大的按鈕。

介質模板:

<GroupSizeDefinition Size="Medium"> 
    <ControlSizeDefinition ControlName="button1" ImageSize="Large" IsLabelVisible="true" /> 
    <ControlSizeDefinition ControlName="button2" ImageSize="Large" IsLabelVisible="true" /> 
    <ColumnBreak ShowSeparator="true"/> 
    <Row> 
     <ControlSizeDefinition ControlName="button3" ImageSize="Small" IsLabelVisible="true" /> 
    </Row> 
    <Row> 
     <ControlSizeDefinition ControlName="button4" ImageSize="Small" IsLabelVisible="true" /> 
    </Row> 
</GroupSizeDefinition> 

導致兩個大按鈕,一個分離器,然後兩行(與含有一個小按鈕的每一行)。

模板:

<GroupSizeDefinition Size="Small"> 
    <Row> 
     <ControlSizeDefinition ControlName="button1" ImageSize="Small" IsLabelVisible="true" /> 
     <ControlSizeDefinition ControlName="button3" ImageSize="Small" IsLabelVisible="false" /> 
    </Row> 
    <Row> 
     <ControlSizeDefinition ControlName="button2" ImageSize="Small" IsLabelVisible="true" /> 
     <ControlSizeDefinition ControlName="button4" ImageSize="Small" IsLabelVisible="false" /> 
    </Row> 
</GroupSizeDefinition> 

引起兩行,在每兩個小按鈕,纔會出現。


把它放在一起:

<Group CommandName="grpActivity" > 
    <SizeDefinition> 
     <ControlNameMap> 
      <ControlNameDefinition Name="button1"/> 
      <ControlNameDefinition Name="button2"/> 
      <ControlNameDefinition Name="button3"/> 
      <ControlNameDefinition Name="button4"/> 
     </ControlNameMap> 
     <GroupSizeDefinition Size="Large"> 
      <ControlSizeDefinition ControlName="button1" ImageSize="Large" IsLabelVisible="true" /> 
      <ControlSizeDefinition ControlName="button2" ImageSize="Large" IsLabelVisible="true" /> 
      <ColumnBreak ShowSeparator="true"/> 
      <ControlSizeDefinition ControlName="button3" ImageSize="Large" IsLabelVisible="true" /> 
      <ControlSizeDefinition ControlName="button4" ImageSize="Large" IsLabelVisible="true" /> 
     </GroupSizeDefinition> 
     <GroupSizeDefinition Size="Medium"> 
      <ControlSizeDefinition ControlName="button1" ImageSize="Large" IsLabelVisible="true" /> 
      <ControlSizeDefinition ControlName="button2" ImageSize="Large" IsLabelVisible="true" /> 
      <ColumnBreak ShowSeparator="true"/> 
      <Row> 
       <ControlSizeDefinition ControlName="button3" ImageSize="Small" IsLabelVisible="true" /> 
      </Row> 
      <Row> 
       <ControlSizeDefinition ControlName="button4" ImageSize="Small" IsLabelVisible="true" /> 
      </Row> 
     </GroupSizeDefinition> 
     <GroupSizeDefinition Size="Small"> 
      <Row> 
       <ControlSizeDefinition ControlName="button1" ImageSize="Small" IsLabelVisible="true" /> 
       <ControlSizeDefinition ControlName="button3" ImageSize="Small" IsLabelVisible="false" /> 
      </Row> 
      <Row> 
       <ControlSizeDefinition ControlName="button2" ImageSize="Small" IsLabelVisible="true" /> 
       <ControlSizeDefinition ControlName="button4" ImageSize="Small" IsLabelVisible="false" /> 
      </Row> 
     </GroupSizeDefinition> 
    </SizeDefinition> 

    <Button CommandName="cmdStartWorking" /> 
    <Button CommandName="cmdStopWorking" /> 
    <Button CommandName="cmdPrint" /> 
    <Button CommandName="cmdDuplicateTicket" /> 
</Group>