- 若要自定义窗口,同时保留其标准功能,可以使用WindowChrome类。 WindowChrome类窗口框架的功能分离开来视觉对象,并允许您控制的客户端和应用程序窗口的非工作区之间的边界。
- 可与WindowStyle=None搭配使用,基本没有做不出来的窗口了
属性列表
属性 | 名称 | 值 | 使用 |
---|---|---|---|
GlassFrameThickness | 玻璃框厚度 | -1 整个窗口都遮挡
0无边框
| GlassFrameThickness = new Thickness(0, 0, 0, 1) |
NonClientFrameEdges | 指定边不属于客户区 | NonClientFrameEdges=“Left,Bottom,Right” | |
ResizeBorderThickness | 将边框重新向内部更改 | ResizeBorderThickness=new Thickness(10) |
控件中使用的属性
IsHitTestVisibleInChrome | 控件在Chrome中是否可见 | 有时候控件会出现不可用或者被遮挡的情况,该属性置位True可解决该问题 |
使用
- 在CustomWindow的DefaultStyle中添加如下Setting:
这样除了包含阴影的边框,整个Window的内容就可以由用户定义了。<Setter Property="WindowChrome.WindowChrome"> <Setter.Value> <WindowChrome CornerRadius="0" GlassFrameThickness="1" UseAeroCaptionButtons="False" NonClientFrameEdges="None" /> </Setter.Value> </Setter>