问题标签 [windows-ribbon-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
188 浏览

c++ - Vista Basic 主题功能区问题

在 Vista 下,在 Basic 主题下,调用 IUIFramework::Destroy() 后 Vista 主题丢失,并且扩大窗口不会显示在初始区域之外。

您可以使用 SimpleRibbon SDK 示例轻松重现它。在 simpleribbon.cpp 中,插入 WndProc 开关块:

在 Vista Basic Theme 中编译、运行、按键并尝试放大(在 Win7 或 Vista aero 或 Windows 经典版中没有问题)。

如何解决?

[编辑]

我会对一些要调查的曲目感到满意,我不希望有一个成熟的解决方案:-)

0 投票
3 回答
9425 浏览

delphi - Windows 功能区框架:如何更改字体和大小?

如何更改Windows Ribbon Framwork的 UIRibbon 使用的字体和字体大小?

功能区使用的字体与用户选择作为其 Windows 首选项的字体不匹配 - 这是我的应用程序使用的首选项。这意味着随着 Windows 中的字体变大,功能区会变小。

注意功能区如何在每个屏幕截图中变小:

Segoe UI 9pt(Windows 默认)

替代文字

Segoe UI 12pt(我用的)

替代文字

Segoe UI 16pt(客户用什么)

替代文字

你可以看到,当我们达到 16pt 时,功能区上的文字很难阅读。

背景

用户可以配置 Windows 以使用他们喜欢的字体大小,例如:

  • 8点
  • 9点
  • 12点

以及他们喜欢的字体,例如:

  • MS 无衬线字体
  • 微软无衬线字体
  • 塔霍马
  • 世高用户界面
  • 口径

但默认情况下, Windows Ribbon Framework使用用户偏好的字体。

编辑:将图片移到顶部以捕捉被闪亮的东西吸引的松鼠。
编辑2:添加了另一张彩色图片,以获得凹凸。
编辑3:编辑以获得凹凸
编辑4:添加另一张不同的图片以获得凹凸


功能区确实允许自定义功能区的颜色

以下代码片段用于设置UI_PKEY_GlobalBackgroundColor功能区的。在这种情况下,我使用用户当前选择的 Aero 配色方案的颜色:

现在功能区的颜色与 Windows 的配色方案相匹配:

替代文字

但我找不到更改字体/大小的选项。

注意:虽然功能区可能会尊重用户的 DPI 设置,但这不是这个问题。


它适用于 Outlook 2010

注意 Outlook 2010 的功能区确实尊重用户的(菜单)字体首选项,这可能会有所帮助。您可以通过调用获取用户的菜单字体[SystemParametersInfo][6]

2010 年 9 点展望

替代文字

2010 年 12 点展望

替代文字

2010 年 12 点展望

替代文字

注意到功能区的大小随着字体大小而增加?(在这些调整大小的屏幕截图中,这意味着功能区不会在感知上变小。)

有两种可能:

  • Outlook 2010 知道如何在 Windows 功能区框架中调整字体大小
  • Outlook 2010 不使用 Windows 功能区框架

Windows 7 画图不起作用

还需要注意的是,Windows 7 中的 Windows Paint 不支持用户的字体首选项。这让我相信它(mspaint)确实使用了 Windows Ribbon Framework,并且 Windows Ribbon Framework 不支持设置字体大小。如果你真的试图提供帮助,并一直阅读到这里,你会意识到这是正确的答案:这是不可能的。因此,如果您想要一个免费的 300 代表,您可以将其添加为答案。

编辑: 交叉发布到微软

关键词: Windows Ribbon Framework,更改字体大小,UIRibbon,字体,功能区 ui,风景 ui,风景区功能区,流利的功能区,流利的 ui,更改字体窗口功能区,uiribbon.h

Microsoft 有许多功能区实现:


MS Paint 不支持菜单字体偏好

这是一个屏幕截图,显示了我配置的 Windows 7菜单字体设置为 12pt,msPaint 可见,Outlook 2010 可见以进行比较。

替代文字


示例代码

Windows 功能区框架 14pt != 14pt

这是配置为 14pt(在 96dpi 机器上)的Windows菜单字体的屏幕截图。Outlook 2010 是 14pt,Photoshop CS3 是 14pt。丝带……少了。

替代文字

也可以看看

0 投票
2 回答
2704 浏览

windows-7 - Windows 7 功能区:如何指定“四个按钮,两个大,两个小”?

布局组时,Windows 功能区框架支持一些预定义的布局。其中一种布局需要四个按钮,称为FourButtons.

此布局支持 3 种不同的尺寸,。在每种情况下,它都给出了布局:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

现在我FourButtons在我的 xml 文件中使用预定义的模板:

你可以看到这条线

它指定FourButtons布局模板。

我的布局是FourButtons

替代文字

除了我不想要FourButtons布局,我想要“四个按钮,两个大两个小”。

以同样的方式存在ThreeButtons-OneBigAndTwoSmall

在此处输入图像描述

还有一个FiveButtons

在此处输入图像描述

我想要一个FourButtons-TwoBigTwoSmall,我可以手动模拟:

替代文字

不幸的是,微软为创建自定义布局而发明的声明式编程让我作为程序员感到困惑。

谁能破译页面底部的声明性语言示例并想出一个FourButton-TwoBigTwoSmall模板?

注意:所有漂亮的图形、格式、链接和东西都用来吸引松鼠——它们喜欢闪亮的图形。如果你真的读了这么远,我实际上可以使用你的帮助。

0 投票
1 回答
669 浏览

delphi - Scenic Ribbon 不会出现在 Delphi 表单中 // 有人知道吗?

我已经玩了一点 Scenic Ribbon API ( Windows Ribbon Framework )。这是我的结果:

一切运行都没有错误。我已经使用 Ribbon 二进制 XML 定义创建了一个资源,并且它已正确链接到我的可执行文件中。但是我的窗口出现时没有功能区。

重要的部分在WndProc. 框架被初始化tmpFrameW.Initialize(似乎是正确的)。MyApp(这是我的IUIApplication实现)的引用计数器增加了。调用tmpFrameW.LoadUIRibbon 定义应该被加载。此调用没有错误(结果为 0 并且没有引发异常),但引用计数器MyApp减少了。

这就是发生的事情......有人知道我做错了什么吗?

0 投票
2 回答
902 浏览

c++ - 当我水平调整我的应用程序窗口大小时,为什么功能区 UI 会消失?

我想在我的新项目中采用 Ribbon UI,我知道它可能更多地关注 WoW 因素,而不是真正使用 Ribbon 来取代杂乱的工具栏。然而,当我开始尝试调整窗口大小时,检查了一些与自动缩放相关的功能。在将窗口缩小到最小宽度后,Ribbon UI 就消失了,我什至认为这在已经采用 Ribbon UI 的商业软件中可能不存在。Paint好像也遇到了同样的问题,不知道Office 2007还是2010是否也遇到了同样的问题。

0 投票
2 回答
3307 浏览

windows-7 - 我可以在 Windows XP 上使用 Windows 功能区 UI 吗?如何?

通过阅读Arik Poznanski 的博客,我了解到Windows 功能区 UI 框架是 Windows 7 中的一个 COM 对象,而WindowsRibbon 包装器只是围绕它的一个 .NET 单板,以允许在 Windows 窗体应用程序中使用功能区 UI。

我已经成功地实现了一个使用这个包装器的 Hello World Windows 窗体应用程序:

Windows 功能区你好世界

它在我的开发机器上运行,即 Windows7。


问题:

  • 这个“hello, world”应用程序会在 Vista 上运行吗?经验?我是否需要在这些机器上下载一些东西才能做到这一点?

  • 有没有办法在 MSI 安装程序中将 Windows 功能区 UI 组件指定为先决条件?

谢谢


浏览我发现UIRibbon.dll 的文档,它是 Windows7 上提供功能区 UI 的 DLL。它将这些列为最低支持的客户端:

Windows 7、带有 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新

我将如何在 MSI 中检查?

0 投票
1 回答
435 浏览

winapi - Windows Ribbon Framework 中的动态选项卡

我目前正在开发一个具有类似 Office 2007 Ribbon 的第 3 方库的应用程序。该应用程序使用广泛的插件框架和访问控制规则在应用程序启动时构建其功能区选项卡和控件。不幸的是,该功能区库有几个我可以解决的问题,所以我考虑用 Windows 功能区框架 (WRF) 替换它。

不过,WRF 背后有不同的理念,其中整个功能区结构是在 XAML 中指定的。我无法弄清楚的是如何基于插件添加选项卡。以下是我提出的一些想法,其中大部分似乎不适用于该框架:

  1. 添加一个包含来自我的插件的新命令的选项卡。似乎不可行。
  2. 添加包含来自我的插件的新命令的 XAML,并将其与现有 XAML 合并。似乎不可行。
  3. 加载我的插件并且我的命令可用后,生成整个 UI 的 XAML。这似乎是可行的,并且与我们目前直接定义功能区控件的策略没有太大区别,但这真的是唯一的方法吗?

有没有我错过的选项?

0 投票
1 回答
949 浏览

delphi - TRibbon 不显示选项卡

我在 64 位 Windows 机器(Win 7)和 32 位 Windows 机器(XP)上运行 Delphi 2010。

我正在尝试学习如何使用 TRibbon 控件。

我一直在关注 Marco Cantu 的 2009 年手册中的示例并观看 YouTube 演示,但我的控件不像书中或演示中所解释的那样工作。

我通过右键单击控件添加了两个选项卡。但是,当我将 TRibbon 放在主窗体上时,它看起来与我的屏幕截图中的完全一样。它不如书本或 youtube 演示中的高。

我在运行 Windows Xp 和 Delphi 2010 的 Win 32 笔记本电脑上尝试了相同的操作,并获得了完全相同的结果

这是我机器上的样子

64位笔记本电脑截图

这是演示中的样子

来自 youtube 视频演示

再来一次。当它把它放在表单上时,它不会像我在演示中看到的那样具有形状和高度。即使我添加标签。我在安装 Delphi 2010 期间做错了吗?

0 投票
1 回答
1880 浏览

windows-ribbon-framework - 如何使 Windows Ribbon Framework 尊重用户的字体大小?

Office 2007/2010 团队的功能区荣誉是用户(菜单)的字体大小。

Windows Ribbon Framework功能区(由 MS Paint 和我的应用程序使用)忽略用户(即我的)字体首选项。

截图显示:

  • Excel 2010
  • MS油漆(WRF)
  • 我的申请(WRF)

在此处输入图像描述

如何获得Windows Ribbon Framework功能区以尊重用户的字体大小?

奖金喋喋不休

没有单一的“Windows 字体”。允许用户配置六种不同的字体:

  • 图标标题字体
  • 状态字体
  • 消息字体
  • 菜单字体
  • 字幕字体
  • 小标题字体

Office 团队的功能区使用菜单字体,这很有意义,因为功能区是一个菜单。您可以使用以下方法检索菜单字体

色带颜色

默认情况下,功能区不尊重用户的配色方案(在我的屏幕截图中注意蓝色功能区,我的棕色玻璃颜色)。正如您在第三个功能区(托管在我的应用程序中)中看到的那样,有一个用于更改功能区颜色的api。

奖金阅读

  • Windows 功能区框架:如何更改字体和大小?那个问题是关于如何设置任意字体和大小 - 这可以用来尊重用户的 Windows 字体首选项。这个问题是关于指示功能区本身尊重用户的字体首选项,同时仍然无法指定任意字体/大小
0 投票
1 回答
354 浏览

winapi - 如何在 Win32 API 中检测功能区栏的坐标

我正在使用现代功能区样式 UI 在 Win32 API 中制作应用程序。我已经成功测试了一个 SampleRibbon 程序。我遇到的唯一问题是,如何检测功能区栏的 X 和 Y 坐标?当我在 (0,0) 处绘制控件时,它会隐藏在功能区栏后面。但我不希望它隐藏在酒吧后面。是否有任何功能可以获取功能区栏的坐标,以便我可以在功能区下方自动绘制控件。