1. 程式人生 > >C# Winform 窗體美化(七、Win7 Aero 毛玻璃效果)

C# Winform 窗體美化(七、Win7 Aero 毛玻璃效果)

七、Win7 Aero 毛玻璃效果

在 Win7 上有一種 Aero 效果,毛玻璃透明效果,搭配不同風格的顏色,效果很好。在學習 Winform 美化的時候順便看到的這種效果,也整理進來了。

注意:Win7 上想看到這種效果需要開啟並使用 Aero 效果的主題。

效果

這裡寫圖片描述

程式碼

例子下載

public partial class Form1 : Form
{
    [StructLayout(LayoutKind.Sequential)]
    public struct MARGINS
    {
        public int Left;
        public
int Right; public int Top; public int Bottom; } [DllImport("dwmapi.dll", PreserveSig = false)] static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins); [DllImport("dwmapi.dll", PreserveSig = false)] static extern bool DwmIsCompositionEnabled(); //Dll 匯入 DwmApi
public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //如果啟用Aero if (DwmIsCompositionEnabled()) { MARGINS m = new MARGINS(); m.Right = -1; //設為負數,則全窗體透明 DwmExtendFrameIntoClientArea(this
.Handle, ref m); //開啟全窗體透明效果 } } protected override void OnPaintBackground(PaintEventArgs e) { base.OnPaintBackground(e); if (DwmIsCompositionEnabled()) { e.Graphics.Clear(Color.Black); //將窗體用黑色填充(Dwm 會把黑色視為透明區域) } } }