WPF 实现无边框窗口两种方法

6 篇文章 0 订阅
6 篇文章 0 订阅

 

WPF 实现无边框窗口两种方法(本文只介绍两种):

方法1:使用网上常用的方法,设置AllowsTransparency="True"和WindowStyle="None",将窗口的背景设为透明Background="Transparent",

实现代码如下:

<Window x:Class="Window1"
        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"
        mc:Ignorable="d"
      Title="SetPageY" WindowStyle="None" ResizeMode="CanMinimize" AllowsTransparency="True" Background="Transparent">

    <Border    Margin="10"  MouseLeftButtonDown="Window_MouseLeftButtonDown">
        <Border.Effect>
            <DropShadowEffect BlurRadius="10" Color="#FF486DAA" ShadowDepth="11"/>
        </Border.Effect>

</Border>

</Window>

 

因为要显示阴影Border需要设置边距.窗口的拖拽功能也需要手动实现同时后台添加:

           if (e.ButtonState == MouseButtonState.Pressed)
            {
                this.DragMove();
            }

此方法因为要用到 AllowsTransparency="True"非系统原生用法,资源利用低,不推荐!

 

方法:2  应该方法是得用Window自带窗口属性,可以拖拽,支持鼠标双击,无需添加后台代码.同时设置ResizeMode="CanResizeWithGrip",还可以实现鼠标的窗口的大小拖拽.

   <WindowChrome.WindowChrome>
        <WindowChrome CornerRadius="2" GlassFrameThickness="10" />
    </WindowChrome.WindowChrome>

该方法用的是窗口原生效果,资源利用高效,但阴影的颜色不可整改.如果要更改阴影的颜色需要重写Window的Template.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值