.net - WPF 中的 ToolStripDropDownButton 等价物?

标签 .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 ,但我没有找到在工具栏中添加下拉按钮的方法。

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

最佳答案

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

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>

关于.net - WPF 中的 ToolStripDropDownButton 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46250026/

相关文章:

c# - 在 datagridview 内编辑文本框

c# - 如何知道文本是否大于文本框?

wpf - Linq 数据上下文和 "unit of work"

wpf - 需要在后面的代码中创建绑定(bind)并传递参数

c# - 如何使用线程在 ListView 中添加项目?

c# - 使用 StringFormat 重载时,DrawString 会忽略制表符

c# - 获取给定 System.Type 的结构的大小

c# - 将字符串转换为日期 - C#

c# - 轮询作业调度程序的替代方法

c# - Azure 函数-System.Net.Http