



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本主题演示如何将 Windows Vista 玻璃框扩展至 Windows Presentation Foundation (WPF) 应用程序的工作区。说明:此示例仅在运行已启用玻璃效果的桌面窗口管理器 (DWM) 的 Windows Vista 计算机上才会起作用。Windows Vista Home Basic 版本不支持透明玻璃效果。通常利用透明玻璃效果呈现的区域在其他版本的 Windows Vista 上呈现为不透明。示例 下面的示例演示一个已扩展到 Internet Explorer 7 地址栏的玻璃框。Internet Explorer,扩展的玻璃框位于地址栏后。若要在 WPF 应用程序上扩展玻璃框,需要访问非托管的 API。下面的代码示例为扩展玻璃框工作区所需的两个 API 执行平台调用 (pinvoke)。每个 API 都是在名为 NonClientRegionAPI 的类中声明的。C# 复制代码 StructLayout(LayoutKind.Sequential)public struct MARGINS public int cxLeftWidth; / width of left border that retains its size public int cxRightWidth; / width of right border that retains its size public int cyTopHeight; / height of top border that retains its size public int cyBottomHeight; / height of bottom border that retains its size;DllImport(DwmApi.dll)public static extern int DwmExtendFrameIntoClientArea( IntPtr hwnd, ref MARGINS pMarInset);DwmExtendFrameIntoClientArea 是用于将框扩展到工作区中的 DWM 函数。它有两个参数,一个窗口句柄,一个 MARGINS 结构。MARGINS 用于告知 DWM 框扩展到工作区中时延伸的程度。若要使用 DwmExtendFrameIntoClientArea 函数,必须获取一个窗口句柄。在 WPF 中,可以通过 HwndSource 的 Handle 属性获取窗口句柄。在下面的示例中,框扩展至窗口的 Loaded 事件的工作区。C# 复制代码 void OnLoaded(object sender, RoutedEventArgs e) try / Obtain the window handle for WPF application IntPtr mainWindowPtr = new WindowInteropHelper(this).Handle; HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr); mainWindowSrc.CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0); / Get System Dpi System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(mainWindowPtr); float DesktopDpiX = desktop.DpiX; float DesktopDpiY = desktop.DpiY; / Set Margins NonClientRegionAPI.MARGINS margins = new NonClientRegionAPI.MARGINS(); / Extend glass frame into client area / Note that the default desktop Dpi is 96dpi. The margins are / adjusted for the system Dpi. margins.cxLeftWidth = Convert.ToInt32(5 * (DesktopDpiX / 96); margins.cxRightWidth = Convert.ToInt32(5 * (DesktopDpiX / 96); margins.cyTopHeight = Convert.ToInt32(int)topBar.ActualHeight + 5) * (DesktopDpiX / 96); margins.cyBottomHeight = Convert.ToInt32(5 * (DesktopDpiX / 96); int hr = NonClientRegionAPI.DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins); / if (hr 0) /DwmExtendFrameIntoClientArea Failed / If not Vista, paint background white. catch (DllNotFoundException) Application.Current.MainWindow.Background = Brushes.Wh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2273-2025标准齿轮校准规范
- 2025福建福州市闽清县招聘乡镇社会救助协管员2人模拟试卷及答案详解(新)
- 2025湖北咸宁市通城城市发展建设投资(集团)有限公司第一期招聘模拟试卷及答案详解参考
- 2025广东广州市中山大学孙逸仙纪念医院肿瘤科放疗专科科研助理招聘1人模拟试卷及参考答案详解一套
- 2025安徽芜湖市第三城市医疗集团成员单位招聘编外人员15人考前自测高频考点模拟试题及答案详解(网校专用)
- 安全培训教学组织管理课件
- 2025年广东技术师范大学招聘辅导员40人考前自测高频考点模拟试题及答案详解(名校卷)
- 山西省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【装备制造大类】模拟练习
- 广德安全生产培训中心课件
- 2025福建厦门市思明区嘉莲街道办事处招聘非在编工作人员2人模拟试卷完整答案详解
- 华为信息安全管理培训课件
- 诗经整本书阅读课件
- (2025年标准)预售小麦协议书
- 2025年院感测试题及答案
- 承包商全流程安全培训
- 养生店国庆节活动方案
- 古代文学史杜牧课件
- 7.1促进民族团结 课件 2025-2026学年统编版道德与法治九年级上册
- 全套教学课件《工程伦理学》
- 道路凿除及新做砼路面施工方案
- ISO50001-2018能源管理体系内审计划、记录及报告
评论
0/150
提交评论