2009-10-15 34 views
7

基本上,我希望创建一个类似如下的窗口: alt text http://www.thex9.net/screenshots/2009-10-15_1347.png不可调整大小的窗户,windowStyle =无

但是,窗口不应该是可调整大小(在一个屏幕截图是),但必须保留玻璃边框。在截图的窗口中的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> 

是否有可能创建一个窗口,它看起来类似于一个在我的截图,但不是调整大小?任何帮助将非常感激。

+0

我这个答案可能帮助指导您在正确的方向:http://stackoverflow.com/questions/1469727/creating-custom-forms-in-wpf/1469737#1469737 – 2009-10-15 03:19:58

回答

17

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

如果边框仍然指示可调整大小会使您感到困扰,则下一步是设置ResizeMode =“NoResize”,但如果要保留玻璃边缘,则必须开始绘制自己的Aero玻璃。

+0

有没有办法拦截Windows消息停止鼠标超过边界时更改光标? – Daniel 2009-10-16 14:21:14

+0

好吧,我知道你可以[挂钩Windows消息循环] [1],所以你可能想看看。老实说,我不确定要监视什么信息才能拦截与Window chrome的交互,或者如果您甚至可以处理这个问题。 [1]:http://blogs.msdn.com/nickkramer/archive/2006/03/18/554235.aspx – 2009-10-16 14:34:19

17

也许你可以得到想要的结果通过: ResizeMode=
XAML对象属性可以采取有以​​下状态:

  • NoResize - 窗口不能调整大小。最小化和最大化按钮不显示在标题栏中。
  • CanMinimize - 一个窗口只能被最小化和恢复。最小化和最大化按钮都显示,但只有最小化按钮被启用。
  • CanResize - 窗口可以调整大小。最小化和最大化按钮都显示并启用。
  • CanResizeWithGrip - 窗口可调整大小。最小化和最大化按钮都显示并启用。窗口右下角出现一个调整大小的手柄。