WPF_19_菜单

这篇具有很好参考价值的文章主要介绍了WPF_19_菜单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

菜单

WPF提供了两个菜单控件:Menu(用于主菜单)和ContextMenu(用于关联到其他元素的弹出菜单)。

Menu类添加了新属性 IsMainMenu,当值为true时(默认值),按下 Alt 键或 F10 键时菜单就会获得焦点。Menu容器还可以使用几个熟悉的 ItemsControl属性,可以使用 ItemsSource,DisplayMemberPath,ItemsTemplate以及ItemTemplateSelector属性,创建使用数据绑定的菜单。

菜单项

菜单由 MenuItem对象和Separator对象构成。MenuItem类继承自 HeaderedItemsControl 类。
当单击MenuItem对象时,可以处理 MenuItem.Click 事件,也可以使用 Command、CommandParameter、以及CommandTarget属性。

为显示缩略图标,需要设置 MenuItem.Icon 属性;如果使用普通图标,可使用具有位图源的 Image 元素。

ContextMenu 类

与 Menu 类一样,ContextMenu类也包含MenuItem对象的集合,区别是ContextMenu对象不能放置在窗口中,只能被用于设置其他元素的ContextMenu属性。

菜单分隔条

Separator对象是将菜单分成相互关联的命令组的标准元素。通过控件模板,可以自定义分隔条的内容。

<Separator>
    <Separator.Template>
        <ControlTemplate>
            <Border CornerRadius="2" Padding="5" Background="PaleGoldenrod"
                BorderBrush="Black" BorderThickness="1">
                <TextBlock FontWeight="Bold">
                    Editing Commands
                </TextBlock>
            </Border>
        </ControlTemplate>
    </Separator.Template>
</Separator>

工具栏和状态栏

一般,工具栏包含按钮,而状态栏主要包含文本和其他非交互的指示器(如进度条)。

ToolBar控件

ToolBar控件一般充满了 Button, ComboBox, CheckBox, RadioButton 以及 Separator 对象。

<ToolBar>
    <Button Content="{StaticResource DownloadFile}"/>
    <CheckBox FontWeight="Bold">Bold</CheckBox>
    <CheckBox>
        <TextBlock TextDecorations="Underline">Underline</TextBlock>
    </CheckBox>
</ToolBar>

ToolBar和其他继承自 ItemsControl 类的控件不同,没有提供专门的封装器类(没有ToolBarItem类)。ToolBar继承自HeaderedItemsControl类,但Header属性不起作用。可以通过将 ToolBar.Orientation属性设置为 Vertical ,从而创建停靠到窗口侧边的竖向工具栏。

如果工具栏里的内容比窗口更宽时,会自动添加溢出菜单,超出的菜单项会自动添加到溢出菜单中。可以通过 ToolBar.OverflowMode属性来设置这一行为的工作方式:

  • OverflowMode.Never - 永远不放到溢出菜单中,超出边界的菜单项被裁剪掉
  • OverflowMode.AsNeeded - 允许菜单项被放到溢出菜单中
  • OverflowMode.Always - 强制菜单项永远保留在溢出菜单中

ToolBarTrary类使得工具栏共享同一行或同一栏更加容易,为整个ToolBar区域提供了阴影背景,并对工具栏拖放功能进行支持。可以通过 Band 属性来确定工具栏应当被放置到哪一栏中。

<ToolBarTray>
    <ToolBar>
        <Button>One</Button>
        <Button>Two</Button>
    <ToolBar>
    <ToolBar Band="1">
        <Button>A</Button>
        <Button>B</Button>
    <ToolBar>
</ToolBarTray>
StatusBar控件

StatusBar可以包含任何内容(内容被隐式封装到StatusBarItem对象中),并且重写了一些元素的默认样式,使得更合适呈现。不过,StatusBar不支持拖动式的重新排列,也不支持溢出菜单,主要用于显示文本和图像指示器。

功能区

工具栏一直没有演化,因为它们正处在消亡的趋势中。WPF提供了一个功能区版本,但没有包含到 .NET Framework 中,需要从 http://www.microsoft.com/download 下载。

添加功能区
<Window
    xmlns:r="clr-namespace:Mircrosoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary">
    ...
    <r:Ribbon>
        <r:Ribbon.ApplicationMenu>
            <r:RibbonApplicationMenu SmallImageSource="images\widnow2.png">
                <r:RibbonApplicationMenuItem Header="New" ToolTip="Create a new document"
                    ImageSource="images\new.png"/>
            </r:RibbonApplicationMenu>
        </r:Ribbon.ApplicationMenu>
    </r:Ribbon>
</Window>

与应用程序菜单一样,大部分 Ribbon 类继承自标准的WPF控件,并在顶部添加了更多功能区。

类名 说明
RibbonButton 可单击的包含文本与图像的按钮
RibbonCheckBox 可选中或取消选中的复选框
RibbonRadioButton 一组互斥选项中的可单击选项
RibbonToggleButton 具有按下状态和取消按下状态的按钮
RibbonMenuButton 可弹出打开菜单的按钮
RibbonSplitButton 被分成两部分的按钮
RibbonComboBox 组合框
RibbonTextBox 文本框
RibbonSeparator 分隔线
富工具提示

如果想使用增强的工具提示,只需要删除标准的ToolTip属性,并使用下面的属性:

属性名 说明
ToolTipTitle 显示在该项工具提示顶部的标题
ToolTipDescription 工具提示中显示在标题下的文本
ToolTipImageSource 显示在工具提示中的图像
ToolTipFooterTitle 显示工具提示页脚标题的文本
ToolTipFooterDescription 显示工具提示页脚部分的文本,位于页脚标题之下
ToolTipFooterImageSource 显示在工具提示页脚文本左侧的图像
快捷键

通过键盘可以访问功能区中的命令,首先需要为选项卡、组和命令指定适当的快捷键。通过设置 RibbonApplicationMenu、每个RibbonTab、每个RibbonMenuItem、RibbonButton或其他功能区控件的 KeyTip 属性来使用快捷键提示功能。

快速访问工具栏

QAT是一个包含常用按钮的窄条,根据用户的选择可能位于功能区其他要素的上面或下面。通过设置 Ribbon.QuickAccessToolBar 属性来创建QAT。文章来源地址https://www.toymoban.com/news/detail-460827.html

<r:Ribbon.QuickAccessToolBar>
    <r:RibbonQuickAccessToolBar>
        <r:RibbonButton Label="Undo" SmallImageSource="images\undo.png">
    </r:RibbonQuickAccessToolBar>
</r:Ribbon.QuickAccessToolBar>
我的公众号 HelloProgram

到了这里,关于WPF_19_菜单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在 QML 中,ComboBox 是一种常用的用户界面控件,通常用于提供一个下拉式的选择框,允许用户从预定义的选项列表中选择一个值

    ComboBox 详解: 以下是 ComboBox 的一些重要属性和特性: model : 用于指定 ComboBox 中的选项列表,可以是一个数组、列表、模型或者其他可迭代的数据结构。 editable : 用于指定是否允许用户编辑 ComboBox 中的文本输入框,以便输入非预定义的选项。 currentIndex : 用于获取或设置当前

    2024年04月15日
    浏览(42)
  • 19_微信小程序之优雅实现侧滑菜单

    19_微信小程序之优雅实现侧滑菜单 一.先上效果图 要实现这样一个效果,布局其实很简单,整体布局是一个横向滚动的scroll-view,难点在于怎么控制侧滑菜单的回弹,以及寻找回弹的边界条件? 此篇文章主要是基于uni-app来实现的,以后也将继续使用uni-app,但是即使使用的是原

    2024年02月09日
    浏览(44)
  • WPF创建漂亮的菜单栏

    本文要讲的就是如何做一下如图所示的菜单。 代码如下:  

    2024年02月12日
    浏览(22)
  • 19 区域生长用于图像分割(matlab程序)

    1. 简述        区域生长法 区域生长的基本思想是将具有相似性质的像素集中起来构建成分割区域。以一组种子点开始,将与种子性质相似(如灰度级)的领域像素附加到生长区域的每个种子上 算法步骤 a.随机选取图像中的一个像素作为种子像素,并将其表示出来 b.检索种子附

    2024年02月13日
    浏览(31)
  • WPF实战学习笔记04-菜单导航

    添加文件与文件夹 添加文件夹 ​ ./Extensions 添加文件 类型:用户控件 ./Views/IndexView.xaml ./Views/MemoView.xaml ./Views/TodoView.xaml ./Views/SettingsView.xaml ./ViewModels/IndexViewModel.cs ./ViewModels/IndexViewModel.cs ./ViewModels/IndexViewModel.cs ./ViewModels/IndexViewModel.cs ./Extensions/PrismManager.cs 建立View与Vie

    2024年02月16日
    浏览(69)
  • wpf prism左侧抽屉式菜单

    1.首先引入包MaterialDesignColors和MaterialDesignThemes 2.主页面布局 左侧菜单显示在窗体外,点击左上角菜单图标通过简单的动画呈现出来 3.左侧窗体外菜单 这里头像的图片写死了,需要的自己替换。 4.菜单样式 5.主页面事件 6.主页面内容 7.后台C#代码 RegionName 对应每一个创建Contr

    2024年03月11日
    浏览(82)
  • WPF --- 如何重写WPF原生控件样式

    上一篇中 WPF --- 重写DataGrid样式,因新产品UI需要,重写了一下微软 WPF 原生的 DataGrid 的样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等。 滚动条样式。 实现圆角表格,重写表格的一些基础样式,例如 CellStyle , RowStyle , RowHeaderStyle , ColumnHeaderStyle 等。 重写过

    2024年02月05日
    浏览(72)
  • WPF(一) WPF基本控件与布局

    ​ WPF(Windows Presentation Foundation)是微软推出的基于Windows的用户界面框架,中文译为“Windows呈现基础”,属于.NET Framework 3.0的一部分。WPF类似于WinForm技术框架,但是相比于WinForm,WPF对大部分基础功能进行了更加强大的拓展,并且引入了XAML标记语言,真正实现了开发人员和设

    2024年02月02日
    浏览(59)
  • WPF中用户控件和自定义控件

    无论是在WPF中还是WinForm中,都有用户控件(UserControl)和自定义控件(CustomControl),这两种控件都是对已有控件的封装,实现功能重用。但是两者还是有一些区别,本文对这两种控件进行讲解。 用户控件 注重复合控件的使用,也就是多个现有控件组成一个可复用的控件组

    2024年01月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包