【WPF】在MenuItem中下划线“_”显示不正常
MenuItem的Header显示文字时发现一个问题,字符串中的第一个下划线“_”不能显示。如果该下划线前面是一个英文字母,则下划线会跑到该字母下方。(是中文汉字则不会)
查到原因是第一个下划线“_”被转义为了MenuItem的快捷键。。。
因为Header的值是绑定到列表中元素的某个属性的值的,在该属性值前面加@也没法阻止转义,最后想到的办法是把MenuItem的内部显示换成TextBlock控件。
下面是用MenuItem做查看“最近打开”的文件的例子。RecentFilesList列表是数据源。根据业务需要填充该列表即可。
<MenuItem Header="最近打开" ItemsSource="{Binding Path=RecentFilesList}">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header" Value="{Binding Path=SpacePlanName}" />
<!--<Setter Property="MenuItem.ItemsSource" Value="{Binding Path=Items}" />-->
<!--<Setter Property="MenuItem.Icon" Value="{Binding Path=Icon}" />-->
<!--<Setter Property="MenuItem.IsCheckable" Value="{Binding Path=IsCheckable}" />-->
<!--<Setter Property="MenuItem.IsChecked" Value="{Binding Path=IsChecked,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />-->
<Setter Property="MenuItem.Command" Value="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.OpenRecentFilesCommand}" />
<Setter Property="MenuItem.CommandParameter" Value="{Binding Path=SpacePlanId}"/>
<!--<Setter Property="MenuItem.InputGestureText" Value="{Binding Path=InputGestureText}"/>-->
<!--<Setter Property="MenuItem.ToolTip" Value="{Binding Path=ToolTip}" />-->
<Setter Property="MenuItem.HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Header,RelativeSource={RelativeSource AncestorType={x:Type MenuItem},Mode=FindAncestor}}"/>
</DataTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSeparator}" Value="true">
<Setter Property="MenuItem.Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type MenuItem}">
<Separator Style="{DynamicResource {x:Static MenuItem.SeparatorStyleKey}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
【WPF】在MenuItem中下划线“_”显示不正常的更多相关文章
- 小符号反映大问题,Shell中下划线_与变量的关系。
之前写过一个根据日期和时间自动命名文件名的时候遇到一个问题. #! /bin/bash read -p "please input the filename:" filename ...
- python中下划线_的用途
Python 用下划线作为变量前缀和后缀指定特殊变量. _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量 ...
- vscode 在ubuntu的terminal中下划线不显示解决方案
Ctrl+Shift+P,打开搜索,Perferences:Open User Settings 设置Editor:Font Family 为 'Ubuntu Mono', monospace 保存, ...
- Scala 神奇的下划线 _
引言 在 Scala 中,下划线 _ 有很多种用法,作为 Scala 初学者也经常被下划线 _ 搞得晕头转向,下面是对 Scala 中下划线 _ 使用的简单总结~ 导包时, 下划线 _ 表示引用多个方 ...
- Scala 中下划线的用途
转载自:https://my.oschina.net/leejun2005/blog/405305 Scala 作为一门函数式编程语言,对习惯了指令式编程语言的同学来说,会不大习惯,这里除了思维方式之 ...
- Python中下划线---完全解读(转)
Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用’from module import *’导入 __xxx__ 系统定义名字 __xxx ...
- Python中下划线的使用方法
本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已. 单下划线(_) 通常情况下,会在以下3种场景中使用 ...
- 浅谈 Scala 中下划线的用途
Scala 作为一门函数式编程语言,对习惯了指令式编程语言的同学来说,会不大习惯,这里除了思维方式之外,还有语法层面的,比如 underscore(下划线)就会出现在多种场合,令初学者相当疑惑,今天就 ...
- css命名为何不推荐使用下划线_
一直习惯了在命名CSS样式名时使用下划线“_”做为单词的分隔符,这也是在写JS时惯用的写法. 用过CSS hack的朋友应该知道,用下划线命名也是一种hack,如使用“_style”这样的命名,可以让 ...
随机推荐
- mysql homedir迁移
随着数据库的增长,innodb文件和日志文件会越来越大,如果是默认安装的mysql,这些文件一般是放在 /usr/lib/mysql 下面进行转移: 1,安全关闭mysql mysqladmin -u ...
- pbr若干概念
pbr基于辐射传输理论,最基本的一个观点是:一切皆光源--任何一个面元既是光能接收器,也是光能发射器. 光通(flux):单位时间内通过某一面积的光能,单位W(瓦特),用表示. 可见,光通其实就是功率 ...
- EPI Server相关
下载地址: http://world.episerver.com/download/Episerver-CMS/ 文档: http://world.episerver.com/documentatio ...
- js正则表达式实现手机号码,密码正则验证
手机号码,密码正则验证. 分享下javascript中正则表达式进行的格式验证,常用的有手机号码,密码等. /** * 手机号码 * 移动:134[0-8],135,136,137,138,139,1 ...
- c#中lock的使用(用于预约超出限额的流程)
一个项目,预约系统,核心二张表:预约表,预约限额表 用户点击预约按钮后, 1. 先select 预约限额表把该预约时间段的限额取出来, 2. 再select 预约表把该预约时间已经预约上的次数算出来 ...
- VS2010如何重置开发环境
在利用VS进行软件开发的过程中,我们时不时要因为各种原因,对VS的开发环境进行变动,对于很多初次接触VS这样一个十分好用方便的编程工具的人来说,更改编程环境成了一个难题,今天我们就来讲解一下,如何更改 ...
- [svc][jk]磁盘的iops和吞吐量(Throught)指标
参考 另参考 IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一.IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处 ...
- Node + Express + vue2.0 + Webpack项目实践
技术 Express.Vue.Vue-Router.Vue-Resource.Webpack Vue vue 的组件化思想和 React 很像,一个 vue 组件将 html.css 和 js 都写在 ...
- 淘宝分布式数据层TDDL
剖析淘宝 TDDL ( TAOBAO DISTRIBUTE DATA LAYER ) 注:原文:http://gao-xianglong.iteye.com/blog/1973591 前言 在开始 ...
- MyBatis传入集合 list 数组 map参数的写法
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.ite ...