WPF中的ToolStripDropDownButton等效?

时间:2017-09-16 04:23:41

标签: .net wpf winforms toolstrip toolstripdropdown

我是WPF技术的新手。我已经在WinForms开发了大约6年。

现在我想通过学习WPF来提高我的技能迈出一大步。我正在阅读MSDN中的介绍指南,而作为个人练习,我正在尝试将WinForms UI的结构转换为其WPF UI等效。

这是我想在WPF中重现的WinForms控件结构的简单模型:

enter image description here

我的问题是尝试重现 ToolStripDropDownButton 控件的等效控件/行为。

Windows Forms Controls and Equivalent WPF Controls文章中,Microsoft只是说 ToolStripDropDownButton 的等效控件是 ToolBar ...具有组合。我完全不明白“与作文”的含义。我一直在阅读并试验 Toolbar ,但我没有找到在工具栏中添加下拉按钮的方法。

我的问题:有人可以指导我或向我展示如何在工具栏中添加下拉按钮的简短示例吗?

1 个答案:

答案 0 :(得分:4)

您可以在Menu中加ToolbarMenu包含一些MenuItem。每个MenuItem都有一个Header,它是内容,可以是文字或其他元素。此外,每个MenuItem都可以有一些嵌套或MenuItem s。例如,要有这样的菜单结构:

enter image description here

您可以使用此类代码:

<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>