全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本主题演示如何将 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆明冶金高等专科学校《英语翻译理论与实践》2024-2025学年第一学期期末试卷
- 土的直接剪切试验记录(三)
- 高一数学上学期第一次月考(北师大版2019必修第一册第一章高效培优-提升卷)(考试版A4)
- 刺五加对改善睡眠功能研究
- 西藏地区马克思主义大众化现实问题
- 物资采购与供应链管理
- 学位论文参考文献及脚注部分格式示例-论文格式-
- 装备制造业工业汉语平行语料库的搭建与问题的探讨
- 农林经济管理本科毕业论文选题(1425个)
- 【工程建设项目成本管理研究国内外文献综述2400字】
- 2025广东广州市越秀区流花街招聘党建工作指导员1人笔试考试参考题库及答案解析
- 2025年抗菌药培训考试题及答案
- GB/T 21782.4-2025粉末涂料第4部分:爆炸下限的计算
- 清华大学出版社机械制图习题集参考答案(课堂PPT)
- GB/T 23723.3-2010起重机安全使用第3部分:塔式起重机
- 0-6岁儿童健康管理规范
- MBA-营销管理复习题精华及答案
- 高二(8)艺术班下学期家长会课件
- 脾胃风湿病科护理组卧床患者便秘的健康教育知晓率
- 腰骶疼痛精确诊断治疗课件
- 气相色谱质谱联用仪操作规程精
评论
0/150
提交评论