如何在 wpf 中使用 WindowChrome 而不使用 Windows Aero 玻璃效果,黑色边框

2023-12-20

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

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

但我没有成功。

有人有这方面的工作示例吗?或者某种可以解释如何解决我的问题的链接?

我尝试编写一个简单的示例代码,并将 WindowStyle 更改为 none,但它不起作用。这是我的示例代码:

<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:shell="clr-namespace:Microsoft.Windows.Shell;assembly=Microsoft.Windows.Shell" Title="Window" Height="400" Width="500">
    <Window.Style>
        <Style TargetType="{x:Type Window}">
            <Setter Property="shell:WindowChrome.WindowChrome">
                <Setter.Value>
                    <shell:WindowChrome />
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Window}">
                        <Grid>
                            <Border Background="White" Margin="{Binding Source={x:Static shell:SystemParameters2.Current}, Path=WindowNonClientFrameThickness}">
                                <ContentPresenter Content="{TemplateBinding Content}" />
                            </Border>
                            <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Title}" 
                               VerticalAlignment="Top" HorizontalAlignment="Left" 
                               Margin="36,8,0,0"/>
                            <Image Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Icon}"
                           VerticalAlignment="Top" HorizontalAlignment="Left"
                           Margin="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(shell:WindowChrome.WindowChrome).ResizeBorderThickness}" 
                           Width="{Binding Source={x:Static shell:SystemParameters2.Current}, Path=SmallIconSize.Width}"
                           shell:WindowChrome.IsHitTestVisibleInChrome="True"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Style>
    <Grid/>
</Window>

我也在尝试 WindowChrome,到目前为止我的应用程序运行正常:

<Window ...>
    <Window.Style>
        <Style TargetType="{x:Type Window}">
            <Setter Property="shell:WindowChrome.WindowChrome">
                <Setter.Value>
                    <shell:WindowChrome CaptionHeight="15"
                                        CornerRadius="0"
                                        GlassFrameThickness="0,0,0,-1"
                                        NonClientFrameEdges="None"
                                        ResizeBorderThickness="5"
                                        UseAeroCaptionButtons="true"/>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Style>
    <!-- Add content to normal window content (not with template, at first) -->
    <Grid>

    </Grid>
</Window>

如果您使用上面的代码,您应该有一个空窗口,只有标题按钮和一个玻璃窗口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 wpf 中使用 WindowChrome 而不使用 Windows Aero 玻璃效果,黑色边框 的相关文章

  • 在 C# 中生成 HMAC-SHA1

    我正在尝试使用 C 来使用 REST API API 创建者提供了以下用于 hmac 创建的伪代码 var key1 sha1 body var key2 key1 SECRET KEY var key3 sha1 key2 var sig
  • 在 C++ 中将成对向量转换为两个独立向量的最快方法

    假设我有一个vector of pair
  • 如何尝试/捕获所有异常

    我正在完成由其他人启动的 UWP 应用程序 该应用程序经常崩溃 我总是陷入困境应用程序 at if global System Diagnostics Debugger IsAttached global System Diagnostic
  • C# 正则表达式用于查找 中具有特定结尾的链接

    我需要一个正则表达式模式来查找字符串 带有 HTML 代码 中的链接 以获取文件结尾如 gif 或 png 的链接 示例字符串 a href site com folder picture png target blank picture
  • CultureInfo 的实例(来自相同的文化)根据操作系统而变化

    我有一个网站 上面写着这样的日期 CultureInfo cultureInfo CultureInfo GetCultures CultureTypes AllCultures FirstOrDefault c gt string Equ
  • C++中delete和delete[]的区别[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的删除与删除 运算符 https stackoverflow com questions 2425728 delete vs delete operators in c 我写了一个包含两个指针的
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 将字符串转换为正确的 URI 格式?

    有没有简单的方法可以将电子邮件地址字符串转换为正确的 URI 格式 Input http mywebsite com validate email 3DE4ED727750215D957F8A1E4B117C38E7250C33 email
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • 如何生成 appsettings..json 文件?

    我有一个 ASP NET Core 2 WebAPI 它将部署在以下环境中 INT QA STAGE 生产环境 基于上述 我需要有appsettings
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • 2D morton 码编码/解码 64 位

    如何将给定 x y 的莫顿代码 z 顺序 编码 解码为 32 位无符号整数 生成 64 位莫顿代码 反之亦然 我确实有 xy2d 和 d2xy 但仅适用于 16 位宽的坐标 产生 32 位莫顿数 在网上查了很多 但没有找到 请帮忙 如果您可
  • tabcontrol selectedindex 更改事件未被触发 C#

    嘿伙计们 我有一个很小的问题 请参阅下面的代码 this is main load private void Form1 Load object sender EventArgs e tabAddRemoveOperator Selecte
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题
  • C#中为线程指定特殊的cpu

    我有 2 个线程 我想告诉其中一个在第一个 cpu 上运行 第二个在第二个 cpu 上运行 例如在具有两个 cpu 的机器中 我怎样才能做到这一点 这是我的代码 UCI UCIMain new UCI Thread UCIThread ne
  • 如何使用 C# 以低分辨率形式提供高分辨率图像

    尝试使用 300dpi tif 图像在网络上显示 目前 当用户上传图像时 我正在动态创建缩略图 如果创建的页面引用宽度为 500x500px 的高分辨率图像 我可以使用相同的功能即时转换为 gif jpg 吗 将创建的 jpg 的即将分辨率

随机推荐

  • 如何从对象的数组记录集中获取嵌套的 HTML 列表?

    我有一个由 SQL 查询返回的对象数组 其中 top id 是我的父 ID 字段 Array 0 gt stdClass Object id gt 1 top id gt 0 name gt Cat 1 1 gt stdClass Obje
  • 如何确定最接近的纵横比

    给定一个矩形形状 S 长宽比为 sx sy 以及另外两个矩形形状 A 长宽比为 ax ay 和 B 长宽比为 bx by 我如何找出形状 A 或 B 中哪一个具有最接近 S 的长宽比 形状的大小并不重要 是 sx sy ax ay 和 sx
  • 获取数据库表中的数据,如果不存在则将其插入,否则返回行 ID

    我有一个包含 date file creation 列的表文件 我想创建一个包含日期文件创建的表日期 当我插入新文件时 我检查表日期是否存在 我返回行 ID 并将其作为外部插入键在表文件中 否则我插入一个新日期并获取其新行 ID 以将其插入
  • 页面中的 Nuxtjs 异步等待在页面刷新时不起作用

    我尝试使用 vuex 和 nuxt js 在页面的 fetch 方法中获取数据 但是每当有人刷新页面时 它都会失败 但当我通过 nuxt 导航导航时 它会工作 所以在我的页面中我有 fetch store params store disp
  • 添加一列排名

    我有一些数据 test lt data frame A c aaabbb aaaabb aaaabb aaaaab bbbaaa 等等 所有元素的长度都相同 并且在我获取它们之前就已经排序了 我需要创建一个新的排名列 第一 第二 第三 之后
  • 删除 R 输出中的反引号

    我有某些变量lm在 R 中自动用反引号 反引号换行 例如名称中带有冒号的变量 经过一些处理后 我尝试用以下方法写出线性模型的变量和系数write table 不幸的是 反引号也被写出来了 如何防止这些反引号被写入 举一个简单但不切实际的例子
  • C# 调用 ActiveDirectory 的 SetPassword 函数的问题

    我成功创建了一个新用户 然后尝试使用以下代码设置其初始密码 newUser AuthenticationType AuthenticationTypes Secure newUser Invoke SetPassword new objec
  • DCG和左递归

    我正在尝试实现一个 dcg 它采用一组 a b c d 形式的字符串 我遇到的问题是 如果我有一个 s a c b 它返回 true 这是正确的答案 但是当我有 s a c f 形式的查询时 它不会返回答案 并且会耗尽本地堆栈 s gt s
  • ftp_get 不适用于大文件

    这是我的代码 con ftp connect ftpserver com ftp login con username password ftp pasv con true ftp set option con FTP TIMEOUT SE
  • create-react-app 不会生成 public 和 src 文件夹,因此无法启动

    我已经安装 CRA 一个多月了 并且一直在使用它 没有任何问题 但是今天我创建了一个新的 React 应用程序 它构建了文件夹和目录 但它不生成 src 和公共文件夹 它只是生成节点 module 文件夹 因此当我运行 npm start
  • Cordova/phonegap 活动生命周期

    我正在cordova应用程序中为android开发一个地图插件 让我们暂时忘记已经有不止一个了 并认为这是一个学术问题 的文档MapView states http developer android com reference com g
  • PhoneGap/Cordova iOS:捕获有持续时间限制的视频(即 30 秒)

    我想将视频捕捉时间限制为 30 秒 截至目前 PhoneGap 文档说明了 iOS 实现的以下内容 不支持持续时间参数 无法以编程方式限制录制长度 我确实找到了这篇文章 它似乎给出了纯粹客观的 C 实现的解决方案 iPhone 5秒视频拍摄
  • os_signpost 在模拟器上有效,但在设备上运行时无效

    我想使用仪器跟踪时间的函数之一中有以下代码行 当我从仪器在模拟器上运行该应用程序时 使用 os signpost 测量的时间确实显示出来 我可以准确地测量我需要的东西 Then I switch to device same code Ho
  • R - 分割数据框并保存到不同的文件

    我有一个数据框 其中包含多个地点的每月温度数据 gt df4 1 36 location variable cut month year freq 1 Adamantina temperature 10 Jan 1981 21 0 646
  • 如何消除 SSIS 作业中的“未使用的输出列”警告?

    我正在尝试消除 SSIS 进度日志中的一些虚假警告 我收到一堆关于使用原始 SQL 完成工作的任务中未使用列的警告 我有一个数据流 负责在加载新数据之前将数据归档到临时表中 数据流如下所示 OLEDB Source task read st
  • Xcode 是否隐式将 plist 转换为二进制格式?

    Xcode 在构建过程中是否会隐式地将项目中的 plist 转换为二进制文件 我不认为它隐式地这样做 但很难确定 有一个名为 Property List Output Encoding 又名 PLIST FILE OUTPUT FORMAT
  • 如何修复SSL证书验证失败

    我在本地使用 PHPMailer Apache 和 PHP 当我测试我的 SSL 配置和我的 cacerts 时 我得到 default cert file C Program Files Common Files SSL cert pem
  • 在VB.NET中使用Moq的VerifySet

    我有一个功能可以更新 ASP NET 会员资格提供程序中的用户
  • Python Kivy:如何在单击按钮时调用函数?

    我对使用 kivy 库还很陌生 我有一个 app py 文件和一个 app kv 文件 我的问题是我无法在按下按钮时调用函数 app py import kivy from kivy app import App from kivy uix
  • 如何在 wpf 中使用 WindowChrome 而不使用 Windows Aero 玻璃效果,黑色边框

    我正在尝试使用 WindowChrome 类自定义窗口边框 没有 Windows Aero 玻璃效果 正如预期的那样 我最终得到了一个黑人寄宿生 但我最终也没有标题按钮 从微软我了解到我可以通过将窗口样式设置为 null 来使用标准窗口来克