c# - 将窗口按钮置于前面

标签 c# wpf windows xaml

我目前正在为 Windows 开发 Twitter 应用程序,类似于 OSX 的 Twitter 客户端。

我正在使用 Windows Shell 扩展库,发现 here使整个窗口具有Aero效果,并且能够超出指定窗口位置的范围。

我希望窗口按钮(最小化、最大化、关闭)显示在白色背景的网格顶部。我认为这是 Windows 中内置的功能,但显然我错了。

下面的两张图片说明了我的观点。在第二张图片中,我希望窗口按钮优先于白色背景网格,而不是如图所示的相反。

是否有某种代码片段或 XAML 片段可以帮助我?以前有其他人遇到过这个问题吗?

Window sized so that buttons show Window sized so that buttons don't show.

最佳答案

我偶然发现了一个简单但肮脏的解决方案。我只是制作了一条绕过 Windows 按钮外部的路径,并将外部背景设置为白色,或者我使用的任何背景颜色。然后我只是将矩形拼凑在一起,使其看起来很漂亮。

这是生成的代码:

<Grid HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Row="0" Height="20">
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="1.0*" />
      <ColumnDefinition Width="105" />
      <ColumnDefinition Width="5" />
    </Grid.ColumnDefinitions>
    <Rectangle Grid.Column="0" Fill="#FFFFFFFF" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
    <Path HorizontalAlignment="Stretch" Grid.Column="1" Stretch="Fill" VerticalAlignment="Bottom" Height="20" Fill="#FFFFFFFF" Data="M 0,4.11334L 4.008,4.11334C 1.792,4.11334 0,2.27332 0,0L 0,4.11334 Z M 140,4.11334L 135.957,4.11334C 138.192,4.11334 140,4.11334 140,0L 140,4.11334 Z  " />
    <Border Grid.Column="2" CornerRadius="0, 10, 0, 0" Background="#FFFFFFFF" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
  </Grid>

这是生成的图像:

enter image description here

关于c# - 将窗口按钮置于前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746677/

相关文章:

c# - CollectionViewSource.GetDefaultView 在 SetBinding 之后返回 null

c# - css 字体不工作 awesomium.net

c++ - 使用内联 ASM 获取字符串

windows - 学习MFC编程的先决条件

C# 无法设置对象

c# - AngularJS 路由问题

c# - 以编程方式更改 WPF 中的按钮图标

c++ - 在另一个进程正在写入文件时读取文件

c# - 在Azure中使用什么来调度和调用自定义函数(worker)

c# - 如何解决 "The ' configuration' element is not declared“C#.net 中的警告消息