Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将窗口按钮带到前面_C#_Wpf_Windows_Xaml - Fatal编程技术网

C# 将窗口按钮带到前面

C# 将窗口按钮带到前面,c#,wpf,windows,xaml,C#,Wpf,Windows,Xaml,我目前正在为Windows开发一个Twitter应用程序,类似于OSX的Twitter客户端 我正在使用Windows Shell Extensions库使整个窗口成为Aero,并能够扩展到指定窗口位置的边界之外 我希望窗口按钮(最小化、最大化、关闭)以白色背景显示在网格顶部。这是一个功能,我以为已经内置到Windows中,但显然我错了 下面的两幅图说明了我的观点。在第二幅图中,我希望窗口按钮优先于白色背景网格,而不是如图所示的那样 是否有某种代码片段或XAML片段可以帮助我?其他人以前有过这个

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

我正在使用Windows Shell Extensions库使整个窗口成为Aero,并能够扩展到指定窗口位置的边界之外

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

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

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


您应该隐藏最小化、最大化和关闭按钮,并按照此处所述绘制自己的按钮


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

下面是生成的代码:

<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>

这是最终的图像:


看,但我真的希望尽可能避免这样做。我真的更喜欢在对话框中显示默认的Windows按钮,因为我的重点是让这个应用程序看起来像Windows的本地应用程序。好的,但是如果你想保留本地应用程序,你也应该保留标题栏。您是否有任何成功实现所需功能的示例应用程序?你可以监视它们以获取所需的WM消息,然后在你自己的窗口上使用它们。哈哈,我想我是伪造的:)看看这个项目:+1我喜欢这个主意,但有些应用程序会在窗口栏上添加按钮。这些按钮在这个解决方案中仍然是不可见的。@Dowhilef说得很好。如果将来出现这个问题,我可能不得不解决它。如果没有,我就别管它了:Pyea它们看起来比我的好。我需要学习这个。你在使用wpf xaml等什么?我是这方面的新手,但从VB6开始,我擅长其他方面。我需要接住剩下的。