问题标签 [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 投票
0 回答
988 浏览

wpf - AllowsTransparency = true 和 WindowStyle = None 的 WindowChrome 问题

我有一个应用程序,我用 windowchrome 覆盖了主 shell 样式,如下所示:

XAML:

CS:

问题:

  1. 如果我不使用AllowsTransparency = trueand WindowStyle=None,似乎有时会在加载样式之前看到原始按钮。或者,如果对服务器采取任何需要很长时间的操作。
  2. 如果我设置AllowsTransparency = trueand WindowStyle=None,则应用程序会占用屏幕的所有宽度和高度(任务栏未显示)。
  3. 对于多个屏幕,当应用程序在主屏幕上以最大化模式打开并且我移动到具有最大化模式 id 的辅助屏幕时,但我不能从辅助屏幕到主屏幕,它不允许移动到最大化模式。

有任何想法吗?谢谢

0 投票
1 回答
1962 浏览

c# - 带有背景的 WPF WindowChrome - 系统按钮被隐藏

我正在使用WindowChrome. 我定义了自己的样式,但标题栏存在问题。如果我将Background我的主Grid模板设置为透明,则整个窗口使用系统强调色并且Maximize/Minimize/Close按钮可见。

当我设置任何其他背景Maximize/Minimize/Close按钮时,都会被覆盖。我以为我只是自己制作,但这些按钮仍然可以点击。

有什么办法可以显示或完全禁用它们?

我可以设置CaptionHeight为 0 并创建 mi 自己的标题栏,但我不想重新实现拖动和其他默认功能。

我的风格如下:

0 投票
3 回答
7422 浏览

c# - WPF WindowChrome:最大化窗口的边缘不在屏幕上

我使用 WindowChrome 自定义窗口。当我最大化窗口时,边缘会超出屏幕。我使用以下代码来解决这个问题:

我的问题:如何获得正确数量的像素,以使边缘不会超出屏幕。

SystemParameters.WindowResizeBorderThickness 包含不正确的值。

0 投票
0 回答
1085 浏览

wpf - WPF 中的自定义标题栏按钮

我对 WPF 完全陌生,目前正在学习如何使用样式和模板。今天看到很多可以调整窗口标题栏的项目。他们中的大多数人可能会调整窗口镶边来达到这种效果。但是,我正在尝试使用类似 Mac 的关闭、最小化和最大化按钮创建一个标题栏。我希望它们带有 3-D 彩色效果。我已经在互联网上搜索过这种风格,但徒劳无功。谁能告诉我如何使用带有 VB.Net 的 WPF 来实现这种效果?

PS我使用的是VS2010,没有MS Blend。

0 投票
0 回答
173 浏览

c# - 使用 Monogame 调整无边框窗口上的夹点大小

我正在尝试创建一个自定义窗口 UI,通过将主窗口切换为无边框并为标题栏、按钮和其他功能的拖动制作自定义逻辑,跨平台用恒定的 GUI 替换默认窗口修剪。在 WPF 中,我将使用 WindowChrome 类(减去跨平台部分)来执行此操作,我想知道,是否有任何方法可以在 Monogame 中获得类似的功能,特别是无边框窗口边缘的调整大小手柄?

0 投票
1 回答
1591 浏览

c# - WindowChrome - Windows 10 的边框太厚

问题是 Windows 10 的边框太厚。

如果您没有看到下面的屏幕截图,那么这里是文本:

  1. 这个边框在左边、右边和底部太粗了
  2. 那些边缘的边框也更亮

如何制作像 Google Chrome(或 Windows 10 的资源管理器)一样的 1px 边框?负 1px 效果不好,它使边框变白并且仍然很厚。

问题截图

框架是 .NET Framework 4.6.2。

代码:

UPD:尝试使用此代码:

而且……没有效果。

0 投票
1 回答
696 浏览

c# - 如何使用常规标题按钮在非客户区正确绘制内容

我正在尝试使用默认标题按钮和标题栏创建一个窗口,并且仍然能够在窗口镶边中放置任意内容;但是,我尝试过的所有解决方案都会在标题按钮的右侧留下大约 5 个单位的边距。这是一个基本示例:

上面的代码产生了这个

为了清楚起见,我想删除窗口镶边中标题按钮右侧的白色填充,以便窗口与其他窗口完全相同,唯一的区别是我可以将控件放在非客户区(窗口镀铬)。感谢所有帮助!

如果有更稳定的方法来使用不包括使用 WindowChrome 元素的 DWM,如果有人能给我一个例子,我将不胜感激。

0 投票
0 回答
234 浏览

c# - 如何使用常规按钮将内容(控件)放在窗口的标题栏区域 WPF C#

我想找到一种方法将诸如控件之类的内容放入 WPF 窗口的非客户区,而无需触摸默认窗口控件按钮和窗口的任何其他属性。

尝试的解决方案:

我曾尝试使用 WindowChrome 对象来实现想要的结果,但它总是在标题栏的左右两侧留出 5px 的边距,因此窗口按钮会向内偏移,这使它看起来很丑陋、笨拙和非官方。

我试图覆盖 WndProc(我的意思是挂钩)以抵消这种不需要的效果 - 成功 - 但它会导致许多不需要的工件,例如,在某些情况下,标题栏会完全取消渲染;这些按钮仍然可以工作,但在拖动窗口之前它们将完全不可见。

我已经尝试过仅使用本机 Windows API 进行窗口管理和渲染的方法,但它们不会产生想要的结果,边距太厚,调整边框大小不一致以及其他问题。

结论:

我知道必须有一种相对简单且不笨拙的方法来执行此操作,因为文件资源管理器本身具有我要实现的功能。如果您查看左上角,则会有一个工具条,后跟您所在目录的名称,或者简称为“文件资源管理器”。

我如何实现这样的目标?我提前感谢大家的帮助。

0 投票
2 回答
1174 浏览

c# - WPF/XAML – WindowChrome.CaptionHeight 的绑定

我的WPF 自定义控件 MyBaseWindow的Theme/ Generic.xaml如下所示:

我想将HeaderPanel 元素ActualHeight的属性绑定到. 可能吗?ControlTemplate


另一种解决方案是对WindowChrome.CaptionHeightand使用固定高度HeaderPanel.Height,但我更喜欢绑定到精确高度。

0 投票
2 回答
4844 浏览

wpf - 使用 WindowChrome 在 WPF 窗口上显示默认窗口按钮

我发现在 WPF 窗口上使用 WindowChrome 可以让我将内容放在窗口中我想要的任何位置,这是一个很棒的想法。现在我终于可以让标题栏与我的应用程序的其余部分具有相同的颜色了。

但是,我仍然喜欢出现在非样式窗口上的默认最小化/最大化/关闭按钮。

有什么方法可以使用 WindowChrome 设置我的 Window 样式但仍保留默认按钮?

这会形成一个黑色的大窗口(很棒!),但没有任何最小/最大/关闭按钮,因为它们隐藏在Grid(不太好)后面。不过,这些按钮仍然是可点击的,因此它们显然就在那里。