WPF 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
WPF 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
WPF 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
WPF 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
WPF 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 C# 查看源码 »
操作系统 Windows
软件类型 开源软件
所属分类 程序开发GUI开发框架
开源组织 微软
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 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 指数为
超过 的项目

评论 (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
回复
举报
更多评论
发表于大前端专区
2019/05/24 07:23

微软 WPF 框架源码现已托管至 GitHub

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

34
31
发表于大前端专区
2018/12/05 06:08

微软开发者大会:VS 2019 Preview 发布;Windows UX 主要技术开源

美国当地时间12月4日,微软正式举行 Microsoft Connect(); 2018 开发者大会,本次大会的 slogan 是"Build the apps of tomorrow, today."。在今年的大会上,看得出来微软不是憋了一个 —— 而是憋了一波大招。不妨先看一下这次大会微软宣布的重要消息: Visual Studio 2019 Preview .NET Core 3 Preview 1 .NET Framework 4.8 ASP.NET Core 2.2 ML.NET 0.8 WPF, Windows Forms 和 WinUI 框架宣布开源 宣布 .NET 基金会开放接受会...

53
23
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2020/05/17 22:21

WPF

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem (similar to WinForms) originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. ...

0
0
发表了博客
2019/01/16 23:05

WPF: WPF 中的 Triggers 和 VisualStateManager

原文:WPF: WPF 中的 Triggers 和 VisualStateManager 在之前写的这篇文章 WPF: 只读依赖属性的介绍与实践 中,我们介绍了在 WPF 自定义控件中如何添加只读依赖属性,并且使其结合属性触发器 (Trigger) 来实现对控件样式的改变。事实上,关于触发器,在 WPF 中除了属性触发器,还有事件触发器 (EventTrigger) 和数据触发器 (DataTrigger)。此外,为了控制控件外观的切换,除了可以使用触发器外,我们还可以使用 VisualStates 和 ...

0
1
发表了博客
2018/02/20 10:51

WPF: WPF 中的 Triggers 和 VisualStateManager

在之前写的这篇文章 WPF: 只读依赖属性的介绍与实践 中,我们介绍了在 WPF 自定义控件中如何添加只读依赖属性,并且使其结合属性触发器 (Trigger) 来实现对控件样式的改变。事实上,关于触发器,在 WPF 中除了属性触发器,还有事件触发器 (EventTrigger) 和数据触发器 (DataTrigger)。此外,为了控制控件外观的切换,除了可以使用触发器外,我们还可以使用 VisualStates 和 VisualStateManager 来完成。 本文接下来会分别简单地...

0
0
发表了博客
2012/04/29 01:08

WPF

WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。 http://community.infragistics.com/aspnet/media/default.aspx 视频学习网站 http://www.infragistics.com/TC/products/default.aspx 官网...

0
0
发表了博客
2012/03/09 14:08

WPF

汇总下,前面的几个blog太水了,秒杀之! WPF是写rich client GUI的利器,vs2010的界面就是用这个写的。 不仅界面漂亮而且开发效率还很高,运行效率不知道。 除了msdn上的介绍以外,这个网站搞定上手:http://www.wpftutorial.net/Home.html 然后通过开源大点的项目学习是不错,那就这个: http://familyshow.codeplex.com/ 的确挺好看的: 传了源代码上来: http://download.csdn.net/source/2031682 原文链接:http://blog.c...

0
0
发表了博客
2020/09/21 10:39

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

为建立中文知识库加块砖        ——中科大胡不归 0. 前言 做GUI开发应当熟悉Activity或Window的生命周期,这是开发的基础。 WPF窗体的生命周期图如下: 1. 显示窗体 构造函数 Show()、ShowDialog()方法:Show()方法显示非模态窗口,这意味着应用程序所运行的模式允许用户在同一个应用程序中激活其他窗口。ShowDialog()方法显示模态窗口,这个基本和WinForm类似 当初始化窗口时,将引发 SourceInitialized 事件并显示窗...

0
0
发表了博客
2018/02/01 13:09

WPF 使用DMSkin for WPF 快速搭建漂亮的WPF程序

DMSkin-for-WPF是一个基于WPF的.Net WPF开源界面库,实现了无边框的WPF开发方案,内置部分控件模板. 你可以参照模板自行修改完善。(以下简称DFW)。 核心 DFW实现了比较完美的无边框窗体方案,并且拖拽全部采用WIN32消息实现。拖拽依靠桌面边缘完美,高DPI支持,窗体不会变形或异常 另外,由于我对MVVM不擅长,所以DEMO并不是采用MVVM框架。 版本更新 2.0.0.1 (2018-01-30) 1.新增一个窗口Demo。 2.0.0.0 (2017-10-15) 1.移除Windo...

0
1
发表了博客
2018/05/01 17:25

WPF MVVM

本篇从两个方面来讨论MVVM模式: MVVM理论知识 MVVM示例讲解 一,MVVM理论知识   从上一篇文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。   我们使用模式,一般是想达到高内聚低耦合。在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限...

0
1
发表了博客
2019/04/10 10:10

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

1. 在WPF怎么在UI上添加超级链接 这篇文章的目的是介绍怎么在WPF里创建自定义的HyperlinkButton控件。很神奇的,WPF居然连HyperlinkButton都没有,不过它提供了另一种方式用于在UI上添加超级链接: <TextBlock FontSize="20"> <Hyperlink NavigateUri="http://www.google.com" RequestNavigate="Hyperlink_RequestNavigate"> Click here </Hyperlink> </TextBlock> private void Hyperlink_Reques...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了问答
2013/12/18 09:19

除了Visual Studio 还有什么工具可以开发WPF或Winform程序吗?

用Visual Studio很不习惯. 有没有其他的开发工具?

18
0
发表于大前端专区
2019/06/22 15:43

WPF 在异步请求webAPI 接口卡住了UI线程 这是什么情况?

请问大神们有 请求webAPI接口,不卡住UI线程得办法吗?异步 线程都试过了 毫无作用。

1
0
发表了问答
2018/12/05 09:05

【开源早报】Flutter 1.0 正式发布 | 微软开源 WPF | Edge 浏览器恐被取代

2018.12.5开源早报 【综合新闻】 1.微软开发者大会:VS 2019 Preview 发布;Windows UX 主要技术开源 2.微软正在打造基于 Chromium 的浏览器,意欲取代 Edge 3.NVIDIA 宣布开源物理模拟引擎 PhysX SDK 【软件更新】 1.期待已久,Flutter 1.0 正式发布! 2.Apache POI 4.0.1 发布,Office 文档的 Java API 3.Kubernetes 1.13 发布,默认使用 CoreDNS 【软件推介】 WeavingDB —— C# 实现的支持 SQL 语句的缓存库...

1
0
发表于大前端专区
2018/05/26 11:21

逻辑部分Java实现,想加个客户端界面,用什么技术方便,学习价值高?

想在windows跑的客户端。 之前学过一点wpf,没深入,转java阵营了。好像微软又偏爱uwp了,真坑。 javaFX学习的价值大不大?在win7以及以上的系统绑定一个16M的javafxre.jar就不需要再额外安装jre就能跑了吗? electron不了解,就算能调用jar包,那运行也要装jre。

3
2
发表了问答
2015/06/09 07:46

关于C#的WPF布局问题

其实用winform挺好的,但是上面要求吧原来用winform写的都改成WPF,但是WPF的布局非常烦人(可能是我用的不到位),想实现一个XXX.Top = Y都不行啊。我想实现的是把屏幕分三块,上、下左、下右,面积就是1/2,1/4,1/4,但是把屏幕设成Maximum就会出现各种情况,总之实现不了,查了查说可以布局套布局实现,昨天试了用Grid分好块儿,ViewBox上面放Canvas,然后再在上面放我要的组件,可是效果太扯了,分三块儿实现了,但是把那组件...

1
1
发表了问答
2017/08/03 15:59

WPFMediaKit 拍照问题

1
0
发表了问答
2014/10/29 15:34

FireFox是否有内核,可以内嵌在WPF项目中运行?

RT

6
0
发表了问答
2016/01/01 17:21

使用wpf如何开发一个网格控件

各位有没有写过类似于visio的软件。我最近的一个项目有这个类似visio的建议拖拽控件的要求。碰到了一个问题。要让用户可以拖拽网格控件。这个网格就像word里面的表格一样,可以合并单元格、拆分单元格、加减行列。这个控件实在是想不到用什么方法实现了。刚开始用grid来实现了一个,但是灵活度太低了。拆分也是个大问题。

1
0
发表了问答
2017/02/16 11:43

wpf

@不插电码农 你好,想跟你请教个问题: 您好,刚看了一下您的关于wpf的文章,我是一个wpf初学者,想问一下您一个问题,就是我主页面上加了一个treeview,点击打开新的页面但是找不到页面。只是出来一个路径,自己设计的页面没有加载,谢谢您

2
0
发表了问答
2016/10/03 13:44

wpf 窗体会和桌面背景混在一起,是不是要加点阴影效果?

5
0
发表了问答
2012/03/13 08:48

WPF后台设置图片背景不拉伸

页面有个lable,我要实现点击一个Button为lable加入一个背景图片 private void but_chip1_Click(object sender, RoutedEventArgs e) { Uri uri = new Uri("images/counter/chip1.png", UriKind.Relativ; BitmapImage bimg = new BitmapImage(uri); labEAChip_Idle5.Background = new ImageBrush(bimg); } 但是图片一添加上去就会自己拉伸到布满整个lable,因为我还要在lable下面打字,所以不想让背景把字遮住,但是我自己试了好几...

1
0
发表了问答
2016/05/04 15:41

开发 WPF 程序,用 Visual Studio 和用 Blend 有啥区别 啊?

1
0
发表了问答
2016/06/24 22:44

wpf 自定义控件 访问问题

<Style x:Key="Searchcombox" TargetType="{x:Type ComboBox}"> <TextBox Height="25" Name="Search_textBox" Width="169"/> </Style> 请问 这个 写在样式里的 TextBox在后台怎么调用 我的目的是给原有的combox中再添加几个控件 组成一种新的样式 让其它的combox使用...

4
0
发表了问答
2016/06/16 22:10

有个WPF或SilverLight, WinForm的绘图控件Visifire, 它有一种环形的图, 怎么把这种环形图的环变细一点啊?

http://www.visifire.com/silverlight_pie_doughnut_charts_gallery.php http://www.visifire.com 我想在环里边写个文字, 所以才想把环弄细一点. 不知设置哪个属性啊?

2
0
发表了问答
2016/05/06 15:49

请教个复制文件的完整路径的程序怎么写? 想用C#的控制台程序实现。

比如: 在C盘根目录下有个文件 Test.txt 。 我在资源管理器里打开C盘,鼠标右键点击 Test.txt ,在弹窗的右键菜单中点击一个菜单项,这个菜单项就执行我的程序,就可以把 Test.txt 文件的完整路径(C:/Test.txt)复制到剪切板上。 然后我在别的地方按Ctrl+V就可以粘贴出这个完整路径。 感觉很简单,但是做起来无从下手,有个问题不知道怎么解决: 怎么在我的程序中获取到选中的或者是鼠标右键单击的文件,进而获取到这个文件的...

1
0
发表了问答
2016/03/31 20:42

请教大神: VS里输入中文, 显示为乱码, 咋解决啊?

昨天还不是乱码, 不知道改了什么, 就变成乱码了.

7
0
发表了问答
2016/03/24 21:55

给客户做的系统, 启动界面没有放客户的Logo, 是个很大的错误吗?

项目快要收尾了, 启动的界面没有放客户的Logo, 客户还没说什么, 或者是没有注意到. 但是自己公司的领导因为这个问题很是发火, 被臭骂一顿, 感觉自己很委屈. 你想要, 我加上不就完了吗?

19
0
发表了问答
2015/09/13 09:00

来一份青岛的net实习工作吧,不要外包。

主要使用语言:c# 熟悉平台:vs 数据库:mysql,sql server 技术水平:怎么描述呢,反正一般的问题能折腾的出来。

4
0
发表了问答
2015/09/04 20:38

关于C#项目sqlserver数据库打包的问题

环境:VS2013+vs自带sqlserver 最终想要的效果:生成一个带数据库的安装包,能让用户直接运行安装后就能傻瓜式使用 情况:我做一个C#的项目,要求就是基本内容+数据库,老大要求用到sqlserver,现在搞定了,本机运行良好,但是这个数据库是本机作sql服务器的,我publish它出来并没有带数据库,我用了sqlserver database file 添加一个本地的.mdf到工程中再发布,到另一台电脑安装依旧是找不到数据库 数据库就是这个,我需要的表...

2
0
发表了问答
2015/06/16 18:18

DataGrid怎么用?

有没有人会用DataGrid这组件啊?winform或者WPF的都行(因为我觉得因为我觉得用法应该一样),比如现在有个DataGrid1,只有一列,列头叫X,怎么给它手动添加一行数据上去?或者说现在有个一位数组Array[10]做数据源,怎么显示上去?求代码示例,谢谢!

1
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
20 评论
38 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部