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

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

目录

 

返回目录

1. 关于菜单图标大小

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

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

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

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

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

可以看到,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>

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

 

返回目录

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

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

菜单栏背景色是渐变的,工具栏背景色是纯白。和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的感觉了。

作者:Mgen
出处:www.cnblogs.com/mgen

其他参考页面:我的软件和工程博客导读

时间: 2024-09-20 05:56:44

WPF: 针对Windows 8优化菜单栏和工具栏的相关文章

使用C++的托管扩展针对Windows窗体编程

摘要:本文讨论了如何使用 Visual C++ .NET 的托管扩展针对 Windows 窗体编程,并提供了使用直接访问 Windows 窗体类的手动编程技术的示例,以及使用 Windows 窗体设计器的示例.此外,本文还对 Windows 窗体和 Microsoft 基础类 (MFC) 应用程序进行了比较. 简介 长期以来,程序员们都使用 C 和 C++ 来开发 Windows GUI 应用程序.对于我们当中很多人来说,这一段历史可以追溯到 Windows 2.0 时期,那时,我们使用基于 C

好消息,针对Windows 7 SP1 的RDP 8.0 更新已经发布了!

好消息,针对Windows 7 SP1 的RDP 8.0 大家可能知道微软RemoteFX技术可以实现跨广域网的带宽优化,USB设备重定向等增强远程桌面用户体验,但是该功能可以通过RDP8.0交付,并且要求桌面端需要windows 8(Windows 7中RDP为7.0版本)   现在大家可以参考并按照 KB2592687文档中的指导在Windows 7 SP1上下载和安装RDP8.0版本了.   请确保Windows 7已经通过 2574819补丁进行了更新,然后再安装RDP 8.0的更新.

易语言基础教程之菜单栏和工具栏_易语言

目前的易语言版本是10个菜单栏,每个菜单栏有不同的功效,而工具栏就是从菜单栏里找出来的一个方便按钮,下面我就给大家详细解释一下每个菜单栏 菜单栏详解 "程序"菜单 相当于其他应用程序的"文件"菜单,这个菜单主要负责文件操作,例如"新建"."打开"."保存"."另存为"等等,还包括"程序配置"."易模块管理"等.值得初学者注意的是,在易语言的&quo

刘丹:从Soso改版说如何针对Soso做优化

自从soso用发薪计划来吸引用户以来,搜搜就渐渐全方位试水,想在竞争激烈的搜索领域占据更多的市场份额.近日,搜搜的首页悄然变脸,让人对搜搜未来的走向产生浓厚的关注兴趣.seo从业者们也发现,从soso进入的流量越来越多了,似乎表明soso的用户的确正在增多.所以有必要抓住soso的特点,进行有针对的优化. 单就新版搜搜的首页来看,似乎在有意模仿bing的风格,与百度谷歌和搜狗等风格完全不同.新版soso和bing都是以大幅图片作为背景,并且首页都包含较多的信息量.让习惯了百度等简洁风格的国人,觉

10个有用的Windows 7优化调整技巧

目前关于Windows 7各种文章有不少,不过大多是关于用户界面改变的介绍,例如:新的任务栏,开始菜单的改进,更大的预览缩略图等等.Windows 7的新东西还有很多,今天我们来换个话题. 10个非常有用的windows 7优化调整技巧 你是否注意到,磁盘碎片整理已经支持多个驱动器并行处理?还有,你知道是哪个IE插件拖慢了浏览器吗?语音聊天时,音箱音量会自动降低,怎么办? 没错,这些都是Windows 7带给我们的新东西,而且你很有必要知道. 1.加速磁盘碎片整理 Windows 7中的磁盘碎片

Excel菜单栏和工具栏不见了怎么办

  Excel是办公一族的必备软件,当你打开Excel却发现excle菜单栏和工具栏不见了,那肯定很着急吧?这个问题很多朋友都遇到过,接下来,就为大家介绍一下解决方法. 如下图,菜单栏和工具栏都消失了: 1.打开一个excel文件,按ALT+F11,然后在打开的窗口中点击插入--模块,如下图: 把下面的字体复制到对话框中: Sub aaa() Dim aa, bb As Boolean aa = True bb = False Application.CommandBars("ply"

Windows通过优化硬盘驱动器提高性能

可以提高电脑性能的最佳方式之一是优化硬盘驱动器. Windows中包含的功能有助于优化电脑如今所使用的各种类型的驱动器. 不论你的电脑使用的是何种类型的驱动器,Windows 都会自动选择适合驱动器的优化方式. 默认情况下,"优化驱动器"(以前称为"磁盘碎片整理程序")会每周自动运行. 但你也可以手动优化电脑的驱动器. 手动优化驱动器的步骤 1.通过以下方式打开"优化驱动器":从屏幕的右边缘向中间轻扫,点击"搜索"(如果使用鼠

CIA泄露文档最新曝光:针对Windows系统的网络武器Grasshopper

维基解密对CIA网络武器的曝光仍在进行时.上周末,维基解密继续公布了Vault7系列名为"Grasshopper"的CIA网络工具相关文档,根据公布的文档显示,该工具主要针对Windows系统进行入侵控制,是一套具备模块化.扩展化.免杀和持久驻留的恶意软件综合平台. 在曝光的"Grasshopper"文档中,分为持久驻留机制说明.开发指导.系统设备测试.发行版本和设计架构六类共27份相关文件,这些文件主要对基于受害者客户端的恶意软件开发设计作出说明,其中包含的内幕信

绿盟科技网络安全威胁周报2017.15 建议关注方程式组织泄漏大量针对Windows攻击工具

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-15,绿盟科技漏洞库本周新增78条,其中高危48条.本次周报建议大家关注 方程式组织泄漏大量针对Windows攻击工具 .虽然微软发布公告称绝大部分这些漏洞已经在之前的系统升级补丁中修复,但用户还是应该检查自己的操作系统版本,及时更新补丁程序,关闭不必要的135,137,139,445与3389等服务端口,严格限制可信IP对于重要服务器的访问. 焦点漏洞 方程式组织泄漏大量针对Windows攻击工具 NSFOCUS ID 36403,36