WPF Window无边框窗体阴影效果

设置GlassFrameThickness为1,如果ResizeMode为NoResize,则ResizeMode属性不能直接写在Window标签属性上,要以Style.Setter的方式设置,否则没有边框阴影效果

代码:

<Window x:Class="SunCreate.PACP.Client.UI.GIS.CameraDetailsWin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SunCreate.PACP.Client.UI"
        mc:Ignorable="d"
        Title="CameraDetailsWin" Height="780" Width="1200" 
        WindowStyle="None" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" Background="Transparent" 
        Loaded="Window_Loaded">
    <WindowChrome.WindowChrome>
        <WindowChrome CaptionHeight="60"
                      GlassFrameThickness="1"
                      UseAeroCaptionButtons="False"
                      NonClientFrameEdges="None"
                      CornerRadius="0">
        </WindowChrome>
    </WindowChrome.WindowChrome>
    <Window.Resources>
        <ResourceDictionary>
            <!-- Window样式 -->
            <Style TargetType="Window">
                <!-- ResizeMode属性不能直接写在Window标签属性上,要以Style.Setter的方式设置,否则没有边框阴影效果 -->
                <Setter Property="ResizeMode" Value="NoResize"></Setter>
            </Style>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        
    </Grid>
</Window>
    
View Code

上面的代码似乎不管用,因为ResizeMode没设置上,使用下面的代码可以实现阴影效果且窗体不可调整大小,但双击标题栏可以最大化

代码:

<Window x:Class="SunCreate.PACP.Client.UI.GIS.CameraDetailsWin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SunCreate.PACP.Client.UI"
        mc:Ignorable="d"
        Title="CameraDetailsWin" Height="780" Width="1200" Loaded="Window_Loaded"
        WindowStyle="None" ResizeMode="CanResize" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" Background="Transparent">
    <WindowChrome.WindowChrome>
        <WindowChrome CaptionHeight="60"
                      GlassFrameThickness="1"
                      UseAeroCaptionButtons="False"
                      NonClientFrameEdges="None"
                      CornerRadius="0"
                      ResizeBorderThickness="0">
        </WindowChrome>
    </WindowChrome.WindowChrome>
    <Grid>
        
    </Grid>
</Window>
    
View Code

 

posted @ 2020-09-18 15:58  秋荷雨翔  阅读(202)  评论(2编辑  收藏