天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

WPF 擴展玻璃效果(Aero Glass)

  Windows 7 操作系統默認具有一款玻璃效果主題(Aero Glass)。如果選擇了該款主題,所有的應用程序標題欄都會處于玻璃透明效果(如下圖)。這個功能是由Desktop Window Manager(DWM)服務支持的。

GlassExample

  默認情況下,我們編寫的應用程序在Windows 7 中也只有標題欄和窗口框架會具備玻璃效果,其他區域仍是不透明狀態(如下圖)。如果想將程序整體都改為上圖IE 窗口的效果,可以使用DWM API 將玻璃區域進行擴展。

Notepad

  首先,從dwmapi.dll 中調取DwmExtendFrameIntoClientArea 方法。

[StructLayout(LayoutKind.Sequential)]
public struct MARGINS
{
public int cxLeftWidth;
public int cxRightWidth;
public int cyTopHeight;
public int cyBottomHeight;
};

[DllImport("DwmApi.dll")]
public static extern int DwmExtendFrameIntoClientArea(
IntPtr hwnd,
ref MARGINS pMarInset);

  創建方法ExtendAeroGlass 方法,可將WPF Window窗口的Aero Glass 區域擴展。

private void ExtendAeroGlass(Window window)
{
try
{
// 為WPF程序獲取窗口句柄
IntPtr mainWindowPtr = new WindowInteropHelper(window).Handle;
HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr);
mainWindowSrc.CompositionTarget.BackgroundColor = Colors.Transparent;

// 設置Margins
MARGINS margins = new MARGINS();

// 擴展Aero Glass
margins.cxLeftWidth = -1;
margins.cxRightWidth = -1;
margins.cyTopHeight = -1;
margins.cyBottomHeight = -1;

int hr = DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins);
if (hr < 0)
{
MessageBox.Show("DwmExtendFrameIntoClientArea Failed");
}
}
catch (DllNotFoundException)
{
Application.Current.MainWindow.Background = Brushes.White;
}
}

  簡單制作一個WPF 界面。

<Window x:Class="WpfAeroGlass.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">
<
Grid x:Name="layout">
<
Button x:Name="btn" Content="Button" Margin="191,66,202,211" />
<
CheckBox x:Name="checkBox" Content="Extend AeroGlass"
Click="CheckBox_Checked" Height="24" Width="121" />
</
Grid>
</
Window>

  補充CheckBox 點擊事件,在其中啟用ExtendAeroGlass 方法。

private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
if (checkBox.IsChecked.Value)
{
this.Background = Brushes.Transparent;
ExtendAeroGlass(this);
}
else
{
this.Background = Brushes.White;
}
}

  演示效果

  運行程序后,默認界面狀態。

Default

  點擊"Extend AeroGlass" 選框,界面中<Grid> 也將呈現玻璃效果。

AllGlass

  Windows API

  通過Windows API Code Pack 可以對Aero Glass 效果進行開啟或關閉。在程序中加入Microsoft.WindowsAPICodePack.Shell 命名空間,調整AeroGlassCompositioinEnabled 完成開/關Aero Glass的效果。

GlassWindow.AeroGlassCompositionEnabled = checkBox.IsChecked.Value;

  源代碼:WpfAeroGlass.zip

NET技術WPF 擴展玻璃效果(Aero Glass),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 两个人在线观看的视频720 | 国产亚洲AV无码成人网站 | 欧亚一卡二卡日本一卡二卡 | 日韩精品 电影一区 亚洲高清 | 琉璃美人煞在线观看 | 亚洲国产无线码在线观看 | 久久精品国产亚洲AV久五月天 | 亚洲精品久久久午夜福利电影网 | 久久久97丨国产人妻熟女 | 99婷婷久久精品国产一区二区 | 夜色55夜色66亚洲精品网站 | 直插下身完整的欧美版 | 性欧美videos俄罗斯 | se01短视频在线观看 | 男男免费看 | 国产真实女人一级毛片 | 晓雪老师我要进你里面好爽 | 永久免费无码AV国产网站 | 一二三区乱码不卡手机版 | 芭乐视频免费资源在线观看 | 亚洲精品无码不卡在线播放he | 女女破视频在线观看 | 亚洲AV无码国产精品色在线看 | 国产精品嫩草免费视频 | 亚洲一区在线观看视频 | 亚洲福利天堂网福利在线观看 | 国产偷国产偷亚洲高清app | 国产美女影院 | 少妇两个奶头喷出奶水了怎么办 | 亚洲免费网站观看视频 | 久久免费特黄毛片 | 久久久97丨国产人妻熟女 | 人人艹人人 | 久久中文骚妇内射 | 亚洲午夜精品aaa级久久久久 | 亚洲人成人77777在线播放 | 国自产拍 高清精品 | 国产精品JIZZ在线观看A片 | 宝贝乖女好紧好深好爽老师 | 久久中文字幕无码A片不卡 久久中文字幕人妻熟AV女蜜柚M | 香蕉鱼视频观看在线视频下载 |