WPF: 针对Windows 8优化菜单栏和工具栏

简介: 原文 WPF: 针对Windows 8优化菜单栏和工具栏 目录 1. 关于菜单图标大小 2. 关于IsEnabled和工具栏图标 3. 针对.NET 3.x的菜单栏和工具栏外观   返回目录 1. 关于菜单图标大小 也就是MenuItem中的Icon属性问题。

原文 WPF: 针对Windows 8优化菜单栏和工具栏

 

返回目录

1. 关于菜单图标大小

也就是MenuItem中的Icon属性问题。

在.NET 4.x下,无论Icon的大小是什么样的,图标总会遵循菜单的大小:

image

而在.NET 3.x下,如果不进行缩放,Icon会保持原图片大小,如下图:

image

因此为了在.NET 3.x中显示正常大小的图标,需要在声明Image时设置它的大小,这个大小本来在.NET 4.x中是不会影响图标实际大小的。

但是新的问题来了,如果程序运行在Windows 8下,图标会去应用这个大小,但是图标本身不会根据菜单实际大小而进行缩放,比如把图片大小设置成25,结果会是这样:

image

可以看到,Image本身大小会是25,但是却被因菜单大小而被裁掉(即便是设置Image的Stretch属性为Fill也不会起作用)。这个问题已经引起的许多开发者的注意,参考这个BUG汇报

所以,为了能在.NET 3.x,和.NET 4.x + Windows 8环境下正确显示MenuItem的图标大小,请设置Image大小为菜单图标的标准大小:16 * 16

 

返回目录

2. 关于IsEnabled和工具栏图标

当菜单中的MenuItem的IsEnabled为False后,MenuItem的图标颜色会变淡。

但是工具栏中的按钮图片不会这样,可以手动通过Style的Trigger来判断IsEnabled属性,如果为False的话,设置Opacify属性。

比如这样:

<Style TargetType="Image">

    <Setter Property="Width" Value="27"/>

    <Setter Property="Height" Value="27"/>

    <Style.Triggers>

        <Trigger Property="IsEnabled" Value="False">

            <Setter Property="Opacity" Value="0.5" />

        </Trigger>

    </Style.Triggers>

</Style>

这样被禁用的按钮就一目了然了:

image

 

返回目录

3. 针对.NET 3.x的菜单栏和工具栏外观

在Windows 8下,如果应用程序运行在.NET 3.0或3.5下,那么菜单栏和工具栏会是这个样子:

image

菜单栏背景色是渐变的,工具栏背景色是纯白。和Windows 8的风格有些不搭配。

 

解决方案是最好设置app.config,使针对.NET 3.x的应用程序可以运行在Windows 8中默认的.NET 4.5环境下,这样设置app.config:

<?xmlversion="1.0" encoding="utf-8"?>

<configuration>

  <startup>

    <!-- 支持.NET 4.0/4.5 -->

    <supportedRuntimeversion="v4.0"/>

    <!-- 支持.NET 3.0/3.5 -->

    <supportedRuntimeversion="v2.0.50727"/>

  </startup>

</configuration>

OK,完成后再次运行程序,这样看起来就更有Windows 8的感觉了。

image

作者:Mgen
出处:www.cnblogs.com/mgen
其他参考页面:我的软件和工程博客导读

目录
相关文章
|
8月前
|
Windows
Windows注册表维护与优化
Windows注册表维护与优化
47 0
|
7天前
|
人工智能 机器人 C#
Windows编程课设(C#)——基于WPF和.net的即时通讯系统(仿微信)
一款参考QQ、微信的即时通讯软件。采用CS结构,客户端基于.Net与WPF开发,服务端使用Java开发。
|
10月前
|
网络协议 关系型数据库 MySQL
01靶场环境搭建(Windows2008系统安装优化及phpstudy安装、cms)
01靶场环境搭建(Windows2008系统安装优化及phpstudy安装、cms)
158 0
|
安全 固态存储 JavaScript
这份 Windows 优化指南,帮你拯救越用越慢的老电脑
这份 Windows 优化指南,帮你拯救越用越慢的老电脑
211 0
|
存储 监控 Windows
推荐5款Windows实用工具,帮你优化系统性能
大家好,今天我来给大家推荐几款实用的Windows工具,它们可以帮助你提高工作效率,优化系统性能。
129 0
推荐5款Windows实用工具,帮你优化系统性能
|
搜索推荐 Windows
Windows系统增强优化工具
计算机系统优化的作用很多,它可以清理WINDOWS临时文件夹中的临时文件,释放硬盘空间;可以清理注册表里的垃圾文件,减少系统错误的产生;它还能加快开机速度,阻止一些程序开机自动执行;还可以加快上网和关机速度;可以用它把系统个性化。今天为大家带来的是Windows电脑系统上不错的增强优化软件,哪个更好用呢,来对比一下。
Windows系统增强优化工具
|
存储 监控 算法
微信Windows端IM消息数据库的优化实践:查询慢、体积大、文件损坏等
本文分享的是,微信客户端团队基于对微信用户日常使用场景和数据分析,通过分离重要和非重要数据、采用可靠的分库策略等,对微信Windows端IM本地数据库的架构进行的优化和改造,并最终得到一个具备良好实践效果的技术改造方案。
295 0
微信Windows端IM消息数据库的优化实践:查询慢、体积大、文件损坏等
|
C# Windows
Windows DPI Awareness for WPF
原文 Windows DPI Awareness for WPF 对于 WPF 程序,要控制程序的 DPI 感知程度,可在 App.manifest 中添加如下代码。 本文知识已经陈旧,你可以阅读这两篇文章来了解更新的 Windows DPI 应用知识: Windows 下的高 DPI 应...
1400 0
|
Windows
windows 技术篇-局域网文件传输效率优化实例演示,下载共享地址里的文件慢解决方法
windows 技术篇-局域网文件传输效率优化实例演示,下载共享地址里的文件慢解决方法
307 0
windows 技术篇-局域网文件传输效率优化实例演示,下载共享地址里的文件慢解决方法
|
C# Windows
WPF程序在Windows 7下应用Windows 8主题
原文:WPF程序在Windows 7下应用Windows 8主题 这篇博客介绍如何在Windows 7下应用Windows 8的主题。 首先我们先看一个很常见的场景,同样的WPF程序(样式未重写)在不同的操作系统上展示会有些不同。
1015 0