如何在Windows 7 / Vista中的wpf应用程序上禁用aero视觉样式。优选的方法是优先顺序。 1)申请清单 2)PINVOKE电话
答案 0 :(得分:1)
我的解决方案涉及为Window创建模板。
首先,使用这两个属性设置WindowStyle = None
和ResizeMode = NoResize
,您将拥有像这样的无边框窗口(不透明度设置为50%):
在VS Designer中,右键单击窗口Edit Template -> Edit a copy...
。现在,这是困难的部分。检查以下代码:
<ControlTemplate TargetType="{x:Type Window}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
</Border>
</ControlTemplate>
我摆脱了Border
和AdornerDecorator
,但没有必要
将您的ContentPresenter
包裹在Grid
内,在位置1,1:
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Row="1" Grid.Column="1"/>
</Grid>
对于其他位置,只需插入Rectangles
作为边框
不幸的是,我现在没有代码,但是如果你搜索“WPF Resize window”,你会很容易找到。
我知道这是一个“黑客”,但它有效:)
答案 1 :(得分:0)
最简单的方法是为窗口渲染自己的镶边。甚至还有Microsoft.Windows.Shell library将为你完成大部分艰苦工作。
如果你想避免所有的工作,那么看一下我WinChrome.Codeplex.com的一些风格吧。
此外,如果你想要更多细节,我在Recreating Office2013/VS2012 window glow中已经介绍了相当多的解释。