2017-09-16 117 views
1

我對WPF技術很陌生。我一直在WinForms開發大約6年。ToolStripDropDownButton在WPF中等效嗎?

現在我想通過學習WPF來推進我的技能的一大步。我正在閱讀MSDN中的介紹指南,而作爲一個個人練習,我試圖將WinForms UI的結構轉換爲其WPF UI等效。

這是WinForms控件結構,我想在WPF重現一個簡單的樣機:

enter image description here

我的問題是試圖重現相當於控制/行爲的ToolStripDropDownButton控制。

Windows Forms Controls and Equivalent WPF Controls文章中,微軟只是說,對於一個ToolStripDropDownButton相當於控制是工具欄 ...帶組成。我完全不明白「與構圖」有何關係。我一直在閱讀和試驗Toolbar,但我沒有找到在工具欄中添加下拉按鈕的方法。

我的問題:有人可以指導我或向我展示如何在工具欄中添加下拉按鈕的簡單示例?

+1

(https://stackoverflow.com/q/1790858/3110834) –

+0

@Reza Aghaei感謝您的評論。我的恐懼是,說它是一個「菜單」,乍一看,並從我的無知說起它似乎是一個單擊按鈕時顯示的菜單,這可能意味着我將失去/無法重現一個按鈕控件默認情況下在按鈕右側繪製一個箭頭? (就像在ToolStripDropDownButton控件中一樣),我會嘗試該解決方案,以查看最終的「菜單」是否可以將預期行爲作爲下拉按鈕。再次感謝! – ElektroStudios

+0

不客氣。根據您在評論中提出的問題,我添加了一個包含箭頭按鈕的代碼示例以及一些在子菜單中託管的其他控件。 –

回答

1

您可以將Menu放入Toolbar。 A Menu包含一些MenuItem。每個MenuItem都有一個Header這是它的內容,可以是文本或其他元素。每個MenuItem也可以有一些嵌套或MenuItem。例如,有一個菜單結構是這樣的:

enter image description here

您可以使用這樣的代碼:?在WPF工具欄下拉菜單]

<ToolBar> 
    <Menu Background="#00000000"> 
     <MenuItem > 
      <MenuItem.Header> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock>Menu 1</TextBlock> 
        <Path VerticalAlignment="Center" Margin="8,2,0,0" 
          Fill="Black" Data="M 0 0 L 3 3 L 6 0 Z"/> 
       </StackPanel> 
      </MenuItem.Header> 
      <MenuItem Header="Menu 1-1" > 
       <MenuItem Header="Menu 1-1-1"/> 
       <MenuItem Header="Menu 1-1-2"/> 
      </MenuItem> 
      <MenuItem Header="Menu 1-2"/> 
      <MenuItem> 
       <MenuItem.Header><TextBox Width="100"/></MenuItem.Header> 
      </MenuItem> 
      <MenuItem> 
       <MenuItem.Header><DatePicker Width="100"/></MenuItem.Header> 
      </MenuItem> 
     </MenuItem> 
     <MenuItem > 
      <MenuItem.Header> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock>Menu 2</TextBlock> 
        <Path VerticalAlignment="Center" Margin="8,2,0,0" 
          Fill="Black" Data="M 0 0 L 3 3 L 6 0 Z"/> 
       </StackPanel> 
      </MenuItem.Header> 
      <MenuItem Header="Menu 2-1"/> 
      <MenuItem Header="Menu 2-2"/> 
      <MenuItem Header="Menu 2-3"/> 
     </MenuItem> 
     <MenuItem Header="Menu 3"/> 
    </Menu> 
</ToolBar>