WPF 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
WPF 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: C# 查看源码 »
操作系统: Windows
开发厂商: 微软
收录时间: 2009-07-08
提 交 者: 红薯

WPF(Windows Presentation Foundation) 是微软推出的用于构建桌面客户端应用程序的 UI 框架,具有应用程序模型、控件、图形、布局、数据绑定和安全性等功能,属于 .NET Framework 3.0 的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

WPF 的核心是一个利用现代图形硬件的渲染引擎。

组成结构

Windows Presentation Foundation 由两个主要部分组成:引擎和编程框架。

1.Windows Presentation Foundation 引擎。Windows Presentation Foundation 引擎统一了开发人员和设计人员体验文档、媒体和 UI 的方式,为基于浏览器的体验、基于窗体的应用程序、图形、视频、音频和文档提供了一个单一的运行时库。Windows Presentation Foundation 使得应用程序不仅能够充分利用现代计算机中现有的图形硬件的全部功能,而且能够利用硬件将来的进步。例如,Windows Presentation Foundation 的基于矢量的呈现引擎使应用程序可以灵活地利用高 DPI监视器,而无需开发人员或用户进行额外的工作。 同样,当 Windows Presentation Foundation 检测到支持硬件加速的视频卡时,它将利用硬件加速功能。

2.Windows Presentation Foundation 框架。Windows Presentation Foundation 框架为媒体、用户界面设计和文档提供的解决方案远远超过开发人员现在所拥有的。Windows Presentation Foundation 的设计考虑了可扩展性,使开发人员可以完全在 Windows Presentation Foundation引擎的基础上创建自己的控件,也可以通过对现有 Windows Presentation Foundation 控件进行再分类来创建自己的控件。Windows Presentation Foundation 框架的核心是用于形状、文档、图像、视频、动画、三维以及用于放置控件和内容的面板的一系列控件。这些“自有控件”为开发下一代用户体验提供了构造块。

Microsoft 在引入 Windows Presentation Foundation 的同时,还引入了 XAML,这是一种公开表示 Windows应用程序用户界面的标记语言,可使开发人员和设计人员用来构建和重用 UI 的工具更加丰富。对于 Web 开发人员,XAML 提供了熟悉的 UI 说明模式。XAML 还使 UI 设计从基础代码中分离出来,从而使开发人员和设计人员之间的合作更加紧密。

WPF 需要使用 Visual Studio 进行开发:

  • Required Workloads:

    • .NET Desktop Development

    • Desktop development with C++

  • Required Individual Components:

    • C++/CLI support

    • Windows 10 SDK

WPF 结构

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

WPF 的相关博客

WPF

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally ...

[WPF] WPF中的窗口的生命周期

为建立中文知识库加块砖        ——中科大胡不归 0. 前言 做GUI开发应当熟悉Activity或Window的生命周期,这是开发的...

WPF: WPF 中的 Triggers 和 VisualStateManager

原文:WPF: WPF 中的 Triggers 和 VisualStateManager 在之前写的这篇文章 WPF: 只读依赖属性的介绍与实践 中,我们介绍了在 ...

WPF: WPF 中的 Triggers 和 VisualStateManager

在之前写的这篇文章 WPF: 只读依赖属性的介绍与实践 中,我们介绍了在 WPF 自定义控件中如何添加只读依赖属性,并且使其结合属...

[WPF 自定义控件]给WPF一个HyperlinkButton

1. 在WPF怎么在UI上添加超级链接 这篇文章的目的是介绍怎么在WPF里创建自定义的HyperlinkButton控件。很神奇的,WPF居然连Hyp...

WPF

xaml里面使用很简单 "" <i:Interaction.Behaviors> <i:MouseDragElementBehavior/> </i:Interaction.Behaviors> 后台代码使用...

初试WPF代码迁移Core WPF

最近2年一直能看到 Net Core的介绍,看到支持WPF和Winform引起了兴趣,写简单Demo运行看效果和了解部署。 现在准备把项目正式...

初试WPF代码迁移Core WPF

最近2年一直能看到 Net Core的介绍,看到支持WPF和Winform引起了兴趣,写简单Demo运行看效果和了解部署。 现在准备把项目正式...

WPF 打印操作之PrintDocument,WPF获取打印机列表,WPF指定打印机

一、WPF 打印操作之PrintDocument,WPF获取打印机列表,WPF指定打印机 PrintDocument 定义一个可重用的对象,当从Windows For...

WPF

WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它...

评论 (20)

加载中

引用来自“喵星人123”的评论

当年的MFC开发人员 现在还好吗?跟着微软走的程序员,挥一挥你们的双手,让我看见你们好吗

引用来自“大佛脚下”的评论

还好,学完WPF原理后,再看现在这些前端框架,秒杀。
我也是边学WPF,边做前端的。 是WPF让我入门 viewmodel这种开发模式的,的确是引领潮流的技术!
2019/01/04 14:25
回复
举报

引用来自“sjz子游”的评论

这是挖坟了吗?2009年收录的给挖出来了

引用来自“久永”的评论

应该是刚刚才开源吧!

引用来自“kidfruit”的评论

我很好奇wpf如果要跨平台,那在linux和mac上后端渲染用什么,毕竟win上用的是directx来渲染。从最直接的移植考虑莫非opengl?

引用来自“久永”的评论

不用好奇,不是已经有新的开源技术出来吗? 你还在想,却已经有人在做了。
用的什么?至少从成本来说要实现directx的效果如果不用opengl,自己造轮子,那投入太大了。
2019/01/04 12:46
回复
举报

引用来自“sjz子游”的评论

这是挖坟了吗?2009年收录的给挖出来了

引用来自“久永”的评论

应该是刚刚才开源吧!

引用来自“kidfruit”的评论

我很好奇wpf如果要跨平台,那在linux和mac上后端渲染用什么,毕竟win上用的是directx来渲染。从最直接的移植考虑莫非opengl?
不用好奇,不是已经有新的开源技术出来吗? 你还在想,却已经有人在做了。
2019/01/04 08:45
回复
举报

引用来自“sjz子游”的评论

这是挖坟了吗?2009年收录的给挖出来了

引用来自“久永”的评论

应该是刚刚才开源吧!
我很好奇wpf如果要跨平台,那在linux和mac上后端渲染用什么,毕竟win上用的是directx来渲染。从最直接的移植考虑莫非opengl?
2019/01/04 08:44
回复
举报

引用来自“IvanYu”的评论

不要为了黑而黑了,做自己的工作,过自己的生活。不知道安卓开发是不是借鉴了WPF呢,都是通过XML布局,现在的很多H5前端框架的MVVM模式是不是也借鉴人家WPF?
就好像java的lambda就是官方在c++ c#几个语言已有lambda模式之上借鉴的,这是官方在研究期间就公开过很多次并讨论了很多轮的事情,但是依然有很多狭隘的人会说java的lambda就是自己做的,谁都没学。
2019/01/04 08:43
回复
举报

引用来自“喵星人123”的评论

当年的MFC开发人员 现在还好吗?跟着微软走的程序员,挥一挥你们的双手,让我看见你们好吗

引用来自“kidfruit”的评论

mfc开发人员来踢你一脚。mfc依然被支持,依然可以在最新的vs里开发,依然能在跑的好好的,性能碾压qt、gtk之类的。mfc就是开发模式比较落后而已,但并不代表就一无是处。另外silverlight、wpf、uwp,这些也是一脉相承的,技术路线一致,看起来名字很多,其实只是一套技术在不同的终端的细分而已。你确定你了解微软的技术体系?

引用来自“喵星人123”的评论

好的 继续你的MFC开发
一个对这套技术完全不了解的人也来随便喷两句找找优越?你这种让人作呕的语气和对技术狭隘的想法真的是太low了。你们老板是不是招不到人了?
2019/01/04 08:41
回复
举报

引用来自“喵星人123”的评论

当年的MFC开发人员 现在还好吗?跟着微软走的程序员,挥一挥你们的双手,让我看见你们好吗

引用来自“kidfruit”的评论

mfc开发人员来踢你一脚。mfc依然被支持,依然可以在最新的vs里开发,依然能在跑的好好的,性能碾压qt、gtk之类的。mfc就是开发模式比较落后而已,但并不代表就一无是处。另外silverlight、wpf、uwp,这些也是一脉相承的,技术路线一致,看起来名字很多,其实只是一套技术在不同的终端的细分而已。你确定你了解微软的技术体系?
好的 继续你的MFC开发
2019/01/03 17:03
回复
举报

引用来自“喵星人123”的评论

当年的MFC开发人员 现在还好吗?跟着微软走的程序员,挥一挥你们的双手,让我看见你们好吗
mfc开发人员来踢你一脚。mfc依然被支持,依然可以在最新的vs里开发,依然能在跑的好好的,性能碾压qt、gtk之类的。mfc就是开发模式比较落后而已,但并不代表就一无是处。另外silverlight、wpf、uwp,这些也是一脉相承的,技术路线一致,看起来名字很多,其实只是一套技术在不同的终端的细分而已。你确定你了解微软的技术体系?
2019/01/03 16:43
回复
举报

引用来自“喵星人123”的评论

当年的MFC开发人员 现在还好吗?跟着微软走的程序员,挥一挥你们的双手,让我看见你们好吗

引用来自“大佛脚下”的评论

还好,学完WPF原理后,再看现在这些前端框架,秒杀。

引用来自“喵星人123”的评论

嘻嘻 WPF原理你怎么学的
看MSDN,拿Reflector看源码,然后自己用Winform模拟一个,本质就是个DirectUI
2019/01/02 16:01
回复
举报

引用来自“喵星人123”的评论

当年的MFC开发人员 现在还好吗?跟着微软走的程序员,挥一挥你们的双手,让我看见你们好吗

引用来自“大佛脚下”的评论

还好,学完WPF原理后,再看现在这些前端框架,秒杀。
嘻嘻 WPF原理你怎么学的
2019/01/02 14:37
回复
举报
更多评论
20 评论
37 收藏
分享
返回顶部
顶部