简单的渐变Aero窗体效果

<shell:GlassWindow  x:Class="WpfApplication2.AreoWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:shell="clr-namespace:Microsoft.WindowsAPICodePack.Shell;assembly=Microsoft.WindowsAPICodePack.Shell"
        Loaded="GlassWindow_Loaded"
        Title="AreoWindow" Height="300" Width="300">
    <Grid>
        <Border Margin="25" Background="White">
            <Border.Effect>
                <BlurEffect Radius="40" />
            </Border.Effect>
        </Border>
        <!-- UI上的控件不要加在Border中,否则也会变模糊的,需要把它另外放,如下XAML(把控件加在下面的contentGrid内) -->
        <Grid Name="contentGrid" HorizontalAlignment="Center" VerticalAlignment="Center">
            <StackPanel>
                <TextBlock>Hello World !</TextBlock>
                <TextBlock>From Chang Weihua</TextBlock>
            </StackPanel>
        </Grid>
    </Grid>
</shell:GlassWindow>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Microsoft.WindowsAPICodePack.Shell;
namespace WpfApplication2
{
    /// <summary>
    /// AreoWindow.xaml 的交互逻辑
    /// </summary>
    public partial class AreoWindow : GlassWindow
    {
        public AreoWindow()
        {
            InitializeComponent();
        }
        private void GlassWindow_Loaded(object sender, RoutedEventArgs e)
        {
            //通过GlassWindow.AeroGlassCompositionEnabled属性判断当前系统环境是否支持Aero效果,如果为True,则再调用GlassWindow.SetAeroGlassTransparency方法将Aero效果覆盖到整个屏幕上。
                  
            //监听GlassWindow的AeroGlassCompositionChanged事件,等Aero支持状态改变后按照情况调用SetAeroGlassTransparency方法。
            AeroGlassCompositionChanged += new EventHandler<AeroGlassCompositionChangedEventArgs>(AreoWindow_AeroGlassCompositionChanged);
            if (AeroGlassCompositionEnabled)
                SetAeroGlassTransparency();
        }
        void AreoWindow_AeroGlassCompositionChanged(object sender, AeroGlassCompositionChangedEventArgs e)
        {
            if (e.GlassAvailable)
                SetAeroGlassTransparency();
        }
    }
}

点击查看原图

知识共享许可协议
《简单的渐变Aero窗体效果》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     163.18ms