【问题标题】:Non-resizable windows with windowStyle=NonewindowStyle=None 的不可调整大小的窗口
【发布时间】:2010-12-06 21:45:48
【问题描述】:

基本上,我想创建一个如下所示的窗口: 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>

是否可以创建一个与我的屏幕截图中的窗口相似但不可调整大小的窗口?任何帮助将不胜感激。

【问题讨论】:

标签: c# .net wpf window


【解决方案1】:

您可能可以通过以下方式获得所需的结果: ResizeMode=
XAML 对象属性可以具有以下状态:

  • NoResize - 无法调整窗口大小。最小化和最大化按钮不会显示在标题栏中。
  • CanMinimize - 只能最小化和恢复窗口。 “最小化”和“最大化”按钮均显示,但仅启用了“最小化”按钮。
  • CanResize - 可以调整窗口大小。最小化和最大化按钮都显示和启用。
  • CanResizeWithGrip - 可以调整窗口大小。最小化和最大化按钮都显示和启用。调整大小的夹点出现在窗口的右下角。

【讨论】:

    【解决方案2】:

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

    如果边框仍然表明它可以调整大小这一事实困扰您,下一步是设置 ResizeMode="NoResize",但是如果您想保留玻璃边缘,则必须开始绘制自己的 Aero 玻璃。

    【讨论】:

    • 有没有办法拦截windows消息来阻止鼠标在边框上时光标的改变?
    • 好吧,我知道你可以[挂钩 Windows 消息循环][1],所以你可能想研究一下。老实说,我不确定要注意哪些消息才能拦截与 Window chrome 的交互,或者是否可以。 [1]:blogs.msdn.com/nickkramer/archive/2006/03/18/554235.aspx
    猜你喜欢
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多