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

c# - 具有自定义窗口样式的后台 STA 线程使用窗口镶边引发跨线程访问异常

这个有点诡异。从 wpf 的主窗口(单击按钮),我正在创建另一个 STA 线程,其中我正在显示一个自定义窗口。此自定义窗口应用了一种使用 shell 中的 WindowChrome 类的样式。调用 Show() 方法时出现异常。

无法跨线程访问可冻结的“System.Windows.Shell.WindowChrome”,因为它无法被冻结。

如果我删除 WindowChrome 设置器,一切正常。我错过了什么?

我已经尝试将窗口镶边标记为冻结,但徒劳无功!

可在此处获得源的副本。

更新: 忘了提到在样式上添加 x:Shared="False" 似乎可以解决问题,但我不知道为什么!这会导致任何性能瓶颈吗?

MainWindow.xaml:

MainWindow.xaml.cs:

背景窗口.xaml:

WindowStyle.xaml(与 App.xaml 合并

0 投票
1 回答
276 浏览

c# - WPF C# - WindowChrome 调整重叠按钮的大小

我有一个带有 WindowChrome 对象和一个充满按钮的 UserControl 的窗口

我想要一个漂亮的无边框窗口,同时保持易于控制大小。

但是调整大小工具与按钮重叠,因此我无法单击它,只能单击按钮的左下角

如何将按钮放在调整大小对话框上方?

0 投票
1 回答
601 浏览

wpf - 如何使用 Caliburn.Micro 访问 ViewModel 中的视图属性

到目前为止,我只使用了 Caliburn.Micro 框架的基本功能。但现在我想要并且需要更深入地了解它。

现在,我需要在其视图模型中访问视图(窗口)的属性。

详细信息如下: 我使用 Microsoft 的 Window-Chrome (NuGet-Package: Microsoft.Windows.Chrome) 自定义 shell 窗口。现在我需要检查窗口的 WindowState-Property 的值,以正确设置绑定到其 ResizeBorderThickness-property 的属性。

如何使用 Caliburn.Micro 框架做到这一点?

附加信息:.NET Framework:4.5;Caliburn.Micro:3.1.0

0 投票
1 回答
2060 浏览

c# - WPF 窗口位于最大化状态的顶部/左侧任务栏下方

我正在开发 WPF 应用程序,我遇到的问题是应用程序何时WindowStyle=None位于WindowState = WindowState.Maximized顶部或左侧放置的任务栏下方。

当任务栏位于底部或右侧时,一切正常。

我知道窗口LeftTop属性,但它们在Maximized状态中被忽略了。

此外,它还Microsoft.Windows.Shell.WindowСhrome提供拖动、双击以最大化和恢复、捕捉和取消捕捉的能力。(需要添加为 dll 引用)

我想实现我的应用程序不会隐藏或进入任务栏,并且可以与WindowСhrome提供的行为一起正常工作。

主窗口.xaml

主窗口.xaml.cs

这是问题的屏幕截图: 部分应用在左侧任务栏下方]

0 投票
0 回答
350 浏览

wpf - 当我们为 Window 设置 WindowChrome 时,TaskBar 未显示

我将系统任务栏设置为自动隐藏,然后以最大化状态运行 WPF 应用程序。当应用程序处于最大化状态时,我将鼠标悬停在屏幕底部以查看任务栏,但它没有出现。找到下面的代码块。

显示任务栏的任何解决方法?

提前致谢。

问候, 普里扬加 B

0 投票
0 回答
1114 浏览

wpf - WPF 窗口 Chrome 样式

我正在使用WindowChrome 类来解决任务栏和应用程序标题中不同图标的问题。这是我的 window.style 示例:

未最大化时 - 我的窗口看起来如我所愿。

但是当最大化(通过双击/最大化按钮单击或停靠到顶部)时,标题背景为黑色,我看不到任何按钮并且我的图标超出了屏幕范围。:(

在此处输入图像描述

有什么建议么?我的风格做错了什么?

0 投票
1 回答
518 浏览

c# - 在 Loaded 事件中调用 Close() 时 WPF 自定义 WindowChrome 异常

设想:

  • CustomWindow带有自定义模板/ WindowChrome的WPF 窗口 ( ) 。
  • 问题:尝试在Loaded事件 throws中关闭窗口NullReferenceException
  • 解决方法:
    1. 如果我注释掉WindowChromesetter,那么它就可以工作。
      • 但失去自定义镀铬
    2. 如果我在关闭窗口之前延迟了任意时间,那么它就可以工作。
      • 使用延迟感觉不对

问题:

只有延迟解决方法允许我 1) 保留我的自定义窗口镶边和 2) 不引发异常。

但是延迟解决方案感觉就像一个黑客。

有一个更好的方法吗?


自定义窗口 xaml

用法

堆栈跟踪:

环境:

  • 视窗 10 专业版
  • 视觉工作室 2017
  • .NET 4.6.1

解决方案

将代码更改为以下作品:

0 投票
1 回答
514 浏览

c# - 为什么添加 ContentControl 会导致我的应用程序进入中断模式?

简短的

我创建了一个漂亮的WindowChrome样式来应用到我的窗户上。但是,当我添加ContentControl到我的样式时,应用程序会进入中断模式。

我已经将这个 youtube 视频这篇文章这个 SO 问题Microsoft 文档中的代码拼凑在一起,并且我想出了以下代码。

注意:下面的代码都被认为是相关的,因为应用程序无法使用这些部分中的任何一个运行(是的,我知道它可以在没有代码隐藏的情况下运行,但是不得不从 Visual Studio 而不是关闭按钮停止应用程序很烦人 - 其中也是我想要完成的)。我实际上已经精简了下面的代码,以便更容易使用。


代码

窗口.xaml

图标.xaml

Window.xaml通过引用此文件的ContentControl Template属性值App.xaml

窗口.xaml.cs


问题

当该行<ContentControl Template="{StaticResource Icon_Close}" Height="10"/>存在时(第 38 行),将收到以下消息。当同一行被删除/注释掉时,应用程序在不进入中断模式的情况下运行。

消息:应用程序处于中断模式

查看输出窗口,我收到以下消息:


问题

此代码在直接放在 的 XAML 代码中时有效Window,但是当我尝试将其放在模板中时它失败了。

我的问题是:

  1. 为什么我的应用程序放在的模板中时会进入中断模式?ContentControlWindow
  2. 我该如何解决这个问题?
    • 请注意,我必须使用文件中的 my ControlTemplateIcons.xaml并且对此内容的调用必须保留在窗口中Style(而不是窗口的实际 xaml)。
0 投票
1 回答
1510 浏览

c# - WPF WindowChrome导致调整大小时闪烁

我正在使用 WindowChrome 以一种简单快速的方式重新设置窗口的样式,但问题是在调整窗口大小时会出现闪烁,尤其是在从左到右调整大小时。

当这部分 WindowChrome 被删除时,一切都会恢复正常。

0 投票
1 回答
1640 浏览

c# - 使用 WindowChrome 类设置标题栏背景

我只想设置 WPF 窗口的标题栏和边框,但标题背景属性看起来并没有在类中公开。

我想保留所有默认Window行为,只需设置color propertyofTitle BarBorder

要设置的正确属性是什么?

我正在参考:https ://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.windowchrome?view=netframework-4.7.2

我看到的唯一属性是 Title 属性,设置它的颜色没有效果