问题标签 [window-chrome]

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 投票
3 回答
3347 浏览

wpf - wpf中的自定义镀铬窗口

我尝试使用 WindowStyle None 和 AllowsTransparency True 在 wpf 中创建一个自定义镀铬窗口,但是,当我最大化窗口时,它覆盖了整个屏幕(并且超出了它的边缘,它还隐藏了我底部的 Windows 栏屏幕,就像全屏游戏一样)。如何使行为像普通窗口一样,但使用我自己定制的 wpf-chrome?

0 投票
2 回答
1248 浏览

c# - C/C++/C#:如何在 Windows 7 上强制重绘窗口镶边?

我的应用程序有一个标准的顶级应用程序窗口。我需要强制重新绘制窗口镶边(也称为窗口的非客户区)。我不在乎客户区是否也被重新粉刷,但 chrome 本身需要被迫重新粉刷。

特别是我需要它在 Windows 7 上运行。在我的特定情况下,它是否适用于其他操作系统版本并不重要。解决方案可以是 C、C++、C# 或任何其他语言。

0 投票
2 回答
3071 浏览

wpf - WPF:自定义窗口,标准最小/最大/关闭按钮

我想创建一个自定义 WPF 窗口(WindowStyle = None,AllowsTransparency = True)。但是,我希望最小/最大/关闭按钮看起来与标准窗口上的相同。这可能吗?

0 投票
1 回答
1370 浏览

wpf - 处理 WM_GETMINMAXINFO 时如何考虑帧大小

我有一个处理 WM_GETMINMAXINFO 的 WPF 应用程序,以便自定义窗口镶边并仍然尊重系统任务栏。也就是说,当您最大化带有任务栏的监视器上的窗口时,它不会覆盖任务栏。这很好用,除了窗口的框架在最大化时仍然可见,这既丑陋又无用,因为窗口在最大化时无法调整大小。

为了解决这个问题,我想我需要改变我的处理WM_GETMINMAXINFO来增加窗口的大小,如下所示:

这实际上有效,但我担心的是最后四行,我假设帧宽度为 2 像素。是否有更通用的方法来获取框架宽度,以便我可以在我的WM_GETMINMAXINFO处理程序中容纳它?

谢谢

0 投票
1 回答
14413 浏览

c# - 如何在 wpf 中使用没有 Windows Aero 玻璃效果的 WindowChrome,黑色边框

我正在尝试使用 WindowChrome 类自定义窗口边框。没有 Windows Aero 玻璃效果。正如预期的那样,我最终得到了一个黑人寄宿生。但我最终也没有字幕按钮

从微软我了解到我可以通过将窗口样式设置为 null 来使用标准窗口来克服这些问题 http://msdn.microsoft.com/en-us/library/microsoft.windows.shell.windowchrome.aspx

但我没有成功。

有没有人有这个工作的例子?或者某种可以解释如何解决我的问题的链接?

我试图做一个简单的示例代码,并将 WindowStyle 更改为 none,但它不会工作。这是我的示例代码:

0 投票
3 回答
13296 浏览

wpf - WPF:在没有自定义镶边的无边框窗口上投影

我在 WindowStyle=None 和 ResizeMode=NoResize 的 WPF-windows 上苦苦挣扎。在窗口内容上使用 DropShadow 效果有什么好的选择吗?我在 Shell 集成库中尝试过 WindowChrome,但是当 ResizeMode=NoResize 时它没有显示任何“Chrome”。

如果有可能以某种方式在我的窗口边框之外绘制一个 wpf-drop-shadow,它可能是一个解决方案。如果我在窗口内绘制阴影,我会得到与标准不同的行为,例如将鼠标光标移动到阴影上。执行此操作时,我的窗口中不应有命中测试,单击此区域应激活后面的窗口等。

Zune 似乎正在绘制自己的阴影,因为它看起来与标准的 Chrome 阴影不完全相同。但它的行为就像一个正常的阴影,它不捕获鼠标事件。我想知道他们是怎么做到的。

Spotify 也有另一种影子,它也没有捕获鼠标事件。

我猜这些应用程序完全绘制了自己的 WindowChrome,但是如何呢?这在 WPF 中是否以某种方式支持?

0 投票
2 回答
3626 浏览

c# - 使用 WindowChrome 复制标准系统菜单?

当使用WindowChrome可在此处下载)自定义窗口的非客户区时,一个自然的起点是制作一个看起来和行为与标准标题栏相同的标题栏。这需要添加“假”应用程序图标和标题栏,因为显然 WindowChrome 禁用了这些功能(最小化、最大化和关闭按钮仍然有效。)

这是我到目前为止所拥有的:

后面的代码:

这非常接近工作。第一个问题是,在您单击应用程序图标并出现系统菜单后,如果您再次单击,菜单应该会消失——相反,菜单只是重新绘制。此外,如果您双击,则窗口应该关闭,但 Image 没有双击事件。您如何建议添加这些功能?

0 投票
2 回答
788 浏览

c# - 伸出 WPF 窗口的控件?

就像 一样Fluent.RibbonWindow,我需要将控件粘贴在窗口的标题/边框上。
我尝试RibbonWindow从课堂上提取,但我总是遇到麻烦。我就是做不到...
有人可以帮我吗?
我基本上需要将窗口的客户区扩展到整个窗口。
我需要将客户区扩展到框架中,而不是将框架扩展到客户区!

0 投票
2 回答
10758 浏览

wpf - 如何在没有隐藏控制框的情况下隐藏 WPF 功能区窗口(启用 Aero)中的标题栏?

我目前使用 WPF 功能区窗口并在当前窗口中启用 Aero,如下图所示。我喜欢隐藏“Pattern Tester”的标题,因为没有足够的空间来显示它。但我仍然需要原始的 Windows 控制框和当前标题(即使它会被隐藏),它们将显示在任务管理器和其他相关程序(如任务切换器和任务栏)中。

WPF 功能区窗口

0 投票
1 回答
1024 浏览

wpf - 当 ResizeMode 设置为 NoResize 时,自定义窗口镶边中的系统关闭按钮表面

我已经使用 WPF Shell 集成库 ( http://archive.msdn.microsoft.com/WPFShell ) 实现了自定义窗口镶边。

Chrome 一直有效,直到我将 ReSizeMode 设置为 NoResize。然后,如果将鼠标悬停在关闭按钮上,我注意到底层系统关闭按钮显示在自定义镀铬关闭按钮下。自定义 Chrome 按钮部分隐藏系统关闭按钮

预期的行为是底层的关闭按钮永远不会出现。如果我在桌面上移动窗口或选择另一个窗口并返回到这个窗口,我注意到系统关闭按钮再次被隐藏。因此,可能本质上是(1)应用程序首次启动和(2)ResizeMode = NoResize 时。

我的第一个怀疑是我们如何处理自定义 Chrome 中的 WM.NCHITTEST。如果我修改这个函数以返回 HClient,那么这个问题就解决了。但是,我失去了拖放以及右键单击标题栏的能力。

这是来自 WindowsChromeWorker 类的 WM.NCHITTEST 消息处理程序的代码。

任何想法如何解决这一问题?

非常感谢,阿琼