在使用wpf时同时设置了WindowStyle="None",ResizeMode="CanResizeWithGrip"结果窗口顶部会出现一个白边,不知道能不能去掉。设置ResizeMode="NoResize"没有白边,但是不能由用户自定义窗口的大小,也不是很理想。
开发环境:vs2010,.net3.5 sp1,win10 preview 10565
<Window x:Class="Com.Xinbo.HipSSOClient.TempSkin" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:my="clr-namespace:Com.Xinbo.HipSSOClient;assembly=HipSSOControlLibrary" xmlns:client="clr-namespace:Com.Xinbo.HipSSOClient.Converters" Title="TempSkin" Height="600" Width="1280" Icon="hip_icon.ico" Loaded="Window_Loaded" Closing="Window_Closing" Closed="Window_Closed" PreviewKeyDown="Window_PreviewKeyDown" FontFamily="Microsoft YaHei" StateChanged="Window_StateChanged" WindowState="Normal" WindowStyle="None" ResizeMode="CanResizeWithGrip">
顶部有个白边如图:
AllowsTransparency="True"
确实可以去掉,但是拖动调整大小的功能就只能靠右下角的那个位置控制,边框不能拖动了。
@于为源: 借助WindowChrome处理下,msdn详细介绍Here
代码如下:
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525" WindowChrome.WindowChrome="{DynamicResource WindowChromeKey}" AllowsTransparency="True" WindowStyle="None" ResizeMode="CanResizeWithGrip"> <Window.Resources> <WindowChrome x:Key="WindowChromeKey"> <WindowChrome.ResizeBorderThickness> <Thickness>5</Thickness> </WindowChrome.ResizeBorderThickness> </WindowChrome> </Window.Resources> <Grid> <Button Content="Close" Click="ButtonBase_OnClick"></Button> </Grid> </Window>
@jello chen: 谢谢,之前没有用过这个类,查看了您发过来的msdn地址,发现时4.5之后才支持的,我们是个老项目,升级framework动作有点大,我暂时就先这样了。十分感谢。
@于为源: 3.5好像也可以用,参考Here
@jello chen: 受教了,嘿嘿。