无法调整大小的窗口,窗口样式为None

16

基本上,我想创建一个窗口,它的外观如下图所示: alt text http://www.thex9.net/screenshots/2009-10-15_1347.png

然而,这个窗口不应该是可调整大小的(截图中的那个是可以调整大小的),但必须保留玻璃边框。截图中窗口的 XAML 如下:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="WpfApplication1.MainWindow"
    x:Name="Window" Title="MainWindow" WindowStyle="None">    
 <Grid x:Name="LayoutRoot"/>
</Window>

是否可能创建一个外观类似于我的截图但不可调整大小的窗口?非常感谢任何帮助。


我的这个回答可能会帮助您朝着正确的方向指引:https://dev59.com/q3M_5IYBdhLWcg3wPAZF#1469737 - Matt Hamilton
2个回答

30

也许您可以通过以下方式获得所需的结果: ResizeMode=
这是 XAML 对象属性,它可以具有以下状态:

  • NoResize - 窗口大小不可调整。标题栏中未显示最小化和最大化按钮。
  • CanMinimize - 窗口仅可最小化和还原。最小化和最大化按钮都显示,但只有最小化按钮可用。
  • CanResize - 窗口可调整大小。最小化和最大化按钮都显示并且可用。
  • CanResizeWithGrip - 窗口可调整大小。最小化和最大化按钮都显示并且可用。窗口右下角出现一个调整大小手柄。

22

一种实现固定大小窗口并保留边框的方法是将Min[Width|Height]和Max[Width|Height]属性设置为相同的值。边框仍将显示调整大小游标,但用户无法更改窗口的大小。

如果您觉得边框仍然指示可调整大小会让您感到困扰,下一步是将ResizeMode="NoResize"设置为不可调整大小,但这样一来,如果您想保留玻璃边缘,则必须开始绘制自己的Aero玻璃。


有没有一种方法可以拦截 Windows 消息,在鼠标悬停在边框上时阻止光标被改变? - Daniel
嗯,我知道你可以挂钩Windows消息循环,所以你可能需要研究一下。老实说,我不确定要观察哪些消息才能拦截与窗口外壳的交互,或者你是否可以这样做。 - Drew Marsh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接