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

c# - 如何使用 C# 代码而不是 XAML 启用窗口镶边?

所以我使用WPFShell将 chrome 应用到自定义窗口。我从这篇文章中了解到,为了使用它,我必须引用Microsoft.Windows.Shell 库并使用以下 XAML 代码:

我的问题是,如何使用 C# 代码而不是 XAML 启用 chrome?(即如何在代码隐藏中应用 chrome?)

0 投票
1 回答
906 浏览

c++ - C++ Win32 设计我的窗口

可能重复:
C++/WIN32 具有专业外观的应用程序 - 真的有可能吗?

我不是在谈论打开资源文件(.rc)并制作我的按钮等等。我在谈论窗口本身的外观 - 就像 Visual Studio Ultimate 2012 的安装程序:

在此处输入图像描述

按钮,一切看起来都不同。与 Photoshop、AE、Maya Autodesk 相同。

他们是怎么做到的?它容易还是困难?我们可以用 c++ 做到吗?

0 投票
1 回答
736 浏览

wpf - Wpf 自定义窗口 TabControl 类模板

我想创建一个CustomWindow以这种方式运行的类: 1. 也利用了窗口的非客户区,出现了 TabControl 的选项卡,而不是像 Google Chrome 中的窗口标题。2. 选项卡是靠右填充的,所以当窗口太小时,最小/最大/关闭按钮不会与选项卡发生冲突——这在 TabControl 模板中应该是可行的。3.标签后面有一个按钮,很像谷歌浏览器中的“新标签”按钮。同样,这应该可以通过 TabControl 的自定义实现来实现,并创建一个假的孩子来渲染我猜。4. 我的类继承自 Window 类,并且 children 集合中的每个子项都映射到 TabControl 选项卡,就像 TabControl.ItemsSource 绑定到 Window.Children 一样。5. Window 暴露了 ItemsSource 属性,其行为也类似于子集合。6. Window 提供了一种方法来设置 TabControl 识别为 ItemTemplate 的样式。CustomWindow.ItemsSource = new string[] { "a", "b", "c" };我为项目填充模板,将创建三个选项卡,其中选项卡标题样式在 CustomWindow 类中硬编码,选项卡项目内容区域由用户模板化。

正如你所看到的,这基本上是谷歌浏览器窗口的轮廓,这正是我想要完成的。我知道如何以我想要的方式弯曲窗口的镶边,处理系统菜单、双击最大化等。但是我不知道如何从 Window 继承类,这将迫使它是唯一的孩子成为我选择的 TabControl(标签标题是样式的),但实际上它的子集合将是 TabControls 子集合。我对 WPF 的经验没有我想的那么丰富,我想以正确的方式开始,所以我以后不需要重写它。

另外,当这个问题得到解决时,我想给用户一种方法来告诉它被固定的选项卡,我猜这最好通过在 CustomWindow 中定义一个附加属性来完成,比如 CustomWindow.IsPinned 用于任何子控件?

谢谢你。

0 投票
1 回答
426 浏览

.net - 渲染窗口镶边控制框的“后面”

我有一种风格,它去除了通常的窗户镀铬并用航空效果玻璃代替它(代码在底部)。

如果您查看指示的线,我正在使用黑盒来使玻璃变暗但保持半透明(我从中获取的示例使用白盒用于类似目的)。我遇到的问题是黑框出现在控制框上方。带有和不带有黑框的窗口的屏幕截图...

在此处输入图像描述 在此处输入图像描述

(包括记事本供参考)。我想让窗口变暗,但这会使控件无法使用我当前的方法。另外,请注意悬停在我的表格上的红色光芒X在我的表格之外是明亮的,但在里面是黑暗的。

所以,我的具体问题是......如何让控制框呈现在“背景”层之上?

更一般地说,感觉必须有更好的方法来做到这一点?我倾向于不喜欢过多地模仿,因为边缘情况太多了。

我想要实现的是一个窗口(*如果它现在正在工作):

  • 黑暗(不是真的工作)
  • 通常的 3 个控制按钮(如果不是上述情况,可能会起作用)
  • 可调整大小 *
  • 使用标题栏区域可拖动 *
  • 半透明 *
  • chrome 和我的窗口之间没有“控制”边框 *

我提到那份洗衣单只是为了让你知道我需要用任何解决方案做什么。我正在使用 .Net 4.5,这意味着System.Shell.ChromeWindow它包含在框架中,但似乎与我能找到的每个教程中提到的旧版本略有不同。

有人可以指出我正确的方向吗?

0 投票
3 回答
3148 浏览

c# - 与 WindowChrome 一起使用时,Window 模板中的 Border Margin 没有任何效果

我正在查看图书馆中的WindowChrome课程System.Windows.Shell(v 3.5.41019.1)。当我尝试创建Window模板时,模板中元素的边距Border似乎没有效果:

你认为这是什么原因?我想知道,因为我看到有些人使用*:

但由于它对我的测试没有任何影响,这样做有什么意义呢?

(*) 它使用的地方之一是CodePlex上的ModernUI项目。

编辑:我已经在带有 Aero 的 Windows 7 上对此进行了测试。

编辑 2: Aero 关闭时仍然如此。

0 投票
1 回答
4043 浏览

wpf - WindowChrome ResizeBorderThickness 问题

我正在设计一个 Window,但我注意到 WindowChrome 的这种奇怪行为(在 .NET FW 4.0 中,来自外部 Microsoft.Windows.Shell dll)。

我将 WindowChrome 设置为 AllowTransparency = true 和 WindowStyle = None。

如果我设置 WindowChrome 的 ResizeBorderThickness <= 7 一切正常,但如果我这样做

ResizeBorderThickness="8"

或更多,当窗口最大化时,我无法从屏幕顶部边缘附近的最后一个顶部像素拖动它,并且对于每个超过 7 的 +1,我必须开始从边缘向下拖动 1 个像素。

这很烦人,因为它在关闭窗口时禁用了常见行为,迫使我将其设置为 7 或更少。

有人可以向我解释这种行为吗?

谢谢!

0 投票
2 回答
1721 浏览

wpf - 在 Windows 8.1 上使用 WindowChrome 时任务栏图标消失

我在 Windows 8.1 上使用自己风格的 WPF 窗口存在一些问题。我用 WindowChrome 编写了一个简单的透明 WPF 窗口,用于默认窗口拖动行为:

Windows 8.1 设置:

  • 2 台带扩展桌面的显示器
  • 任务栏仅在主桌面上可见

复制:

  1. 启动 WPF 应用程序
  2. 在辅助屏幕上移动窗口
  3. 最大化辅助屏幕上的窗口(例如通过将窗口停靠在顶部)
  4. 将窗口从辅助屏幕恢复并拖动到主屏幕

--> 当鼠标进入主屏幕时,任务栏图标将消失!

如果您再次执行相同的复制,该图标会再次出现。

我还尝试使用 .NET 4.5 或 .NET 4.5.1!

谁能解释这个问题?

谢谢!

0 投票
0 回答
133 浏览

c# - 将菜单添加到自定义窗口镶边

我基本上已经阅读了有关自定义窗口镶边的所有问题,并且我也遇到了一些库。

我仍然不知道什么是我想要实现的最佳解决方案。我想删除默认的镶边.NET4,我还希望能够添加菜单来替换自定义镶边。我想要像Photoshop CS6chrome 这样的东西,我也希望它看起来很好Windows XP。对我来说最好的方法/库是什么?

在此处输入图像描述

0 投票
2 回答
1260 浏览

c# - WindowStyle=None 和窗口最大化 hack 不适用于多台显示器

当窗口样式为无并且窗口最大化以使窗口覆盖任务栏时,我遇到了问题。我从这里得到了一个解决方案(我从源代码中得到了代码,而不是他发布的),除了一个部分外,它运行良好。当您有两个监视器并且主监视器小于辅助监视器时,您可以最大化辅助监视器上的窗口,这会发生(注意窗口溢出到屏幕上):

窗户很大。

这就是它的外观:(我刚刚将窗口大小调整为全屏。)

手动调整大小

它在这里工作:

主监视器

我正在做的是制作定制的镀铬物。所有的代码和一个示例项目都在这里上传。另外,如果有人有其他方法可以做到这一点,我将不胜感激。提前致谢!

编辑 这里是一些快速参考的代码:

我没有编写此代码,所以我真的不知道这里发生了什么。这就是我在这里的原因。

0 投票
0 回答
70 浏览

wpf - 样式化 WPFMessageBox 的“标题”

我尝试使用自定义 WPFMessageBox (wpfmessagebox.codeplex.com/),因为我需要设置 MsgBox 的样式。我将所有文件复制到我的 Projekt 并在窗口中添加了一个样式

在此之后,WPF 消息框如下所示:http: //imgur.com/amw0eqw,IoqQyPY#0

但是具有该样式的普通 Windows 看起来是这样的:

http://imgur.com/amw0eqw,IoqQyPY#1

为什么 WPFMessageBox 有一个双“标题”?并且样式不能像普通窗口一样通过 window-chrome 拖动。WPFMessageBox 有什么不同,因此样式不适用?

谢谢帮助

编辑:这是来自另一个窗口的代码,它工作正常