WPF
文章平均质量分 76
狂奔之林
技术控,对很多技术都有涉猎,喜欢开源,了解新技术
走在架构师的路上
展开
-
Windows 下的高 DPI 应用开发(UWP / WPF / Windows Forms / Win32)
转自:https://blog.walterlv.com作者:吕毅本文将介绍 Windows 系统中高 DPI 开发的基础知识。由于涉及到坐标转换,这种转换经常发生在计算的不知不觉中;所以无论你使用哪种 Windows 下的 UI 框架进行开发,你都需要了解这些内容,以免不断踩坑。本文内容各种不同的 Windows 桌面 UI 框架 对普通用户而言的 DPI 级别 对 Windows 应用而言的 DPI 感知级别(Dpi Awareness) 不同 UI 框架对 DPI 的支.转载 2021-05-19 11:50:39 · 974 阅读 · 2 评论 -
.NET 调整图片尺寸(Resize)各种方法
转自:晓晨Master本文中如无特别说明.NET指 .NET 5或者更高版本,代码同样可用于 .NET Core前言调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求,可以寻找开源的AI放大图片的方法。1.ImageSharp开源地址:https://github.com/SixLabors/ImageSharp安装:dotnet add package SixLabors.ImageSharp使用:..转载 2021-01-15 17:37:03 · 2947 阅读 · 2 评论 -
WPF中图像模糊的处理方法
参考:https://www.cnblogs.com/TianFang/archive/2009/07/02/1515553.htmlhttps://www.cnblogs.com/xiaokang088/p/3200431.html方式一在wpf中使用Image时,时常会出现图像模糊的情况,有两种方法可以解决这一问题: 设置Image的SnapsToDevicePixels属性为true。 <ImageSource="images/OrderedList.png"Widt..原创 2020-07-07 09:39:18 · 1247 阅读 · 0 评论 -
WPF-Prism框架在项目中使用
转自:https://www.cnblogs.com/hegezhou_hot/archive/2012/12/21/2828162.html本文大纲1、Prism框架下载和说明2、Prism项目预览及简单介绍。3、Prism框架如何在项目中使用。Prism框架下载和说明 Prism框架是针对WPF和Silverlight的MVVM框架,这个大家应该之前,都有所耳闻,关于该框架的具体说明,可以参考如下地址:  转载 2020-05-16 16:17:42 · 2238 阅读 · 0 评论 -
WPF-常用框架(MvvmLight、Prism)
MvvmLightMvvmLight【帮你建一个MainPage的ViewModel,并创建好Binding】MvvmLightLibs【纯类库】使用参考: 利刃 MVVMLightPrism比较重,微软团队开发企业级框架使用参考:Prism框架在项目中使用...原创 2020-05-16 16:12:16 · 11970 阅读 · 0 评论 -
WPF界面设计辅助工具--Blend
篇外:Blend可以用来探究不熟悉控件组成结构转自:https://blog.csdn.net/xpj8888/article/details/82715409一、什么是Blend?1、Blend是一款用于设计桌面和Web应用用户界面的可视化工具,用于UI设计,其功能和PS类似,但是比PS强大。其可以快速、精细地绘制图片,并可以生成.XAML文件,以便给VS工程使用。2、VS自带有一款bl...转载 2020-03-17 11:52:05 · 4842 阅读 · 0 评论 -
WPF界面设计辅助工具--Blend
篇外:Blend可以用来探究不熟悉控件组成结构转自:https://blog.csdn.net/xpj8888/article/details/82715409一、什么是Blend?1、Blend是一款用于设计桌面和Web应用用户界面的可视化工具,用于UI设计,其功能和PS类似,但是比PS强大。其可以快速、精细地绘制图片,并可以生成.XAML文件,以便给VS工程使用。2、VS自带有...转载 2020-03-17 11:49:11 · 3765 阅读 · 0 评论 -
DynamicResource与StaticResource的区别
转自:https://www.cnblogs.com/zhengwen/archive/2010/04/29/1723647.html什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据。在WPF的资源中,几乎可以包含图像、字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性。也就是说,应用程序中非程序代码的内容,比如点阵图、颜色、字型、动...转载 2020-03-17 11:43:40 · 188 阅读 · 0 评论 -
WPF之全局快捷键
转自:https://www.cnblogs.com/leolion/p/4693514.html目录1、WPF快捷键实现方式2、全局快捷键设置界面3、Windows API调用4、注册全局快捷键5、快捷键触发 WPF快捷键实现方式 WPF快捷键实现主要有自定义快捷键命令和全局快捷键两种方式。 自定义快捷键命令方式是通过KeyBinding为命令绑定快捷键,按键组合可使用“+”进...转载 2018-07-03 10:19:12 · 2729 阅读 · 0 评论 -
wpf呈现UIElment的缩略图
转自:http://www.cnblogs.com/sunhappy0318/archive/2012/05/15/SLT_UIElement.html在msdn上面介绍两种方法:1、使用RenderTargetBitmap2、使用VisualBrush使用第一种方式是,首先按UIElement的原始尺寸转换成位图,放到Image控件里面,通过缩放矩阵编写你想要的缩略图,代码:RenderTarg...转载 2018-06-27 16:21:32 · 574 阅读 · 0 评论 -
微软.net技术文档参考地址
1.https://docs.microsoft.com/zh-cn/dotnet/ 适合中高级开发人员参考。2.https://docs.microsoft.com/zh-cn/ 囊括微软所有产品操作手册和技术简介。...原创 2018-06-25 12:19:55 · 573 阅读 · 0 评论 -
利刃 MVVMLight 10:Messenger 深入
原文:利刃 MVVMLight 10:Messenger 深入1、Messager交互结构和消息类型衔接上篇,Messeger是信使的意思,顾名思义,他的目是用于View和ViewModel 以及 ViewModel和ViewModel 之间的消息通知和接收。Messenger类用于应用程序的通信,接受者只能接受注册的消息类型,另外目标类型可以被指定,用Send<TMessage, TTar...转载 2018-06-19 14:50:30 · 614 阅读 · 0 评论 -
利刃 MVVMLight 9:Messenger
原文:利刃 MVVMLight 9:Messenger MVVM的目标之一就是为了解耦View和ViewModel。View负责视图展示,ViewModel负责业务逻辑处理,尽量保证 View.xaml.cs中的简洁,不包含复杂的业务逻辑代码。但是在实际情况中是View和ViewModel之间的交互方式还是比较复杂的,View和ViewModel的分离并不是界定的那么清晰。比如以下两种场...转载 2018-06-15 11:44:01 · 382 阅读 · 0 评论 -
利刃 MVVMLight 8:DispatchHelper在多线程和调度中的使用
原文:利刃 MVVMLight 8:DispatchHelper在多线程和调度中的使用 在应用程序中,线程可以被看做是应用程序的一个较小的执行单位。每个应用程序都至少拥有一个线程,我们称为主线程,这是在启动时调用应用程序的主方法时由操作系统分配启动的线程。 当调用和操作主线程的时候,该操作将动作添加到一个队列中。每个操作均按照将它们添加到队列中的顺序连续执行,但是可以通过为这些动作...转载 2018-06-15 11:43:22 · 1039 阅读 · 0 评论 -
利刃 MVVMLight 7:命令深入
原文:利刃 MVVMLight 7:命令深入 上面一篇我们大致了解了命令的基本使用方法和基础原理,但是实际在运用命令的时候会复杂的多,并且会遇到各种各样的情况。一、命令带参数的情况:如果视图控件所绑定的命令想要传输参数,需要配置 CommandParameter 属性 ,用来传输参数出去。而继承制Icommand接口的 RelayCommand又支持泛型的能力,这样就可以接受来自客户端请求的参数...转载 2018-06-15 11:42:36 · 618 阅读 · 0 评论 -
利刃 MVVMLight 6:命令基础
原文:利刃 MVVMLight 6:命令基础 在MVVM Light框架中,事件是WPF应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理,因此要了解mvvm中处理事件的方式,就必须先熟悉命令的工作原理。RelayCommand命令: WPF命令是通过实现 ICommand 接口创建的。 ICommand 公开了两个方法(Exec...转载 2018-06-15 11:41:44 · 899 阅读 · 0 评论 -
利刃 MVVMLight 5:绑定在表单验证上的应用
原文:利刃 MVVMLight 5:绑定在表单验证上的应用 表单验证是MVVM体系中的重要一块。而绑定除了推动 Model-View-ViewModel (MVVM) 模式松散耦合 逻辑、数据 和 UI定义 的关系之外,还为业务数据验证方案提供强大而灵活的支持。WPF 中的数据绑定机制包括多个选项,可用于在创建可编辑视图时校验输入数据的有效性。常见的表单验证机制有如下几种:验证类型说明Exce...转载 2018-06-15 11:41:06 · 304 阅读 · 0 评论 -
利刃 MVVMLight 4:绑定和绑定的各种使用场景
原文:利刃 MVVMLight 4:绑定和绑定的各种使用场景一、绑定: 主要包含元素绑定和非元素绑定两种。1、元素绑定,是绑定的最简单形式,源对象是WPF的元素,并且源对象的属性是依赖项属性。根据我们之前的知识 ,依赖项属性具有内置的更改通知支持。所以当我们的源对象中改变依赖项属性的值时,会立即更新目标对象中的绑定属性。以上篇的例子来重写,我们不用额外定义全局公开的属性来支持数据的显示。如下:1 ...转载 2018-06-15 11:40:13 · 167 阅读 · 0 评论 -
利刃 MVVMLight 3:双向数据绑定
原文:利刃 MVVMLight 3:双向数据绑定 上篇我们已经了解了MVVM的框架结构和运行原理。这里我们来看一下伟大的双向数据绑定。说到双向绑定,大家比较熟悉的应该就是AngularJS了,几乎所有的AngularJS 系列教程的开篇几章都要涉及到,真的是很好用。表达的效果很简单:就是在界面的操作对数据模型的修改能实时反映到数据;而数据的变更能实时展现到界面。即视图数据模型(ViewM...转载 2018-06-15 11:39:11 · 233 阅读 · 0 评论 -
利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明
原文:利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明 上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中。这篇我们来了解下一个基本的MVVMLight框架所必须的结构和运行模式。MVVMLight安装之后,我们可以看到简易的框架布局,如上篇,生成了一个ViewModel文件夹,ViewModel层的内容...转载 2018-06-15 11:38:09 · 269 阅读 · 0 评论 -
利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用
原文:利刃 MVVMLight 1:MVVMLight介绍以及在项目中的使用一、MVVM 和 MVVMLight介绍MVVM是Model-View-ViewModel的简写。类似于目前比较流行的MVC、MVP设计模式,主要目的是为了分离视图(View)和模型(Model)的耦合。它是一种极度优秀的设计模式,但并非框架级别的东西,由MVP(Model-View-Presenter)模式与WPF结合的...转载 2018-06-15 11:37:07 · 1160 阅读 · 0 评论 -
MVVM模式的几个开源框架
原文:MVVM模式的几个开源框架实现MVVM的框架有很多,如:• MVVM Light Toolkit:http://mvvmlight.codeplex.com• Microsoft Prismhttp://compositewpf.codeplex.com/• Calcium SDKhttp://calciumsdk.net/• Caliburnhttp://caliburn.code...转载 2018-06-15 11:35:28 · 23824 阅读 · 0 评论 -
WPF中解决内存泄露的几点提示与解决方法
转自:http://www.cnblogs.com/LastPropose/archive/2011/08/01/2124359.html一直以来用WPF做一个项目,但是开发中途发现内存开销太大,用ANTS Memory Profiler分析时,发现在来回点几次载入页面的操作中,使得非托管内存部分开销从起始的43.59M一直到150M,而托管部分的开销也一直持高不下,即每次申请的内存在结束后不能完...转载 2018-07-16 11:40:39 · 3605 阅读 · 0 评论 -
WPF 窗口和控件实现近似透明的效果(事件不能透下去)
1.窗口 WindowStyle="None" AllowsTransparency="True" Background="#01FFFFFF" 2.控件 Background="#01FFFFFF" 后台代码实现: ...原创 2018-07-03 14:56:06 · 2218 阅读 · 0 评论 -
WPF -UI -- Opacity,RGBA与OpacityMask
转自:https://blog.csdn.net/qq_23018459/article/details/80096118关于OpacityMask和Opacity一直傻傻分不清楚,以为都是设置控件透明度的,其实它们的差别和用法还是很大的,用的好的话能够制造出很绚丽的效果。1,概述Opacity:透明度,设置控件的整体透明度。0~1,但是存在一个问题,设置了一个元素的透明度后,该元素中包括的子元素...转载 2018-07-03 15:10:05 · 3108 阅读 · 0 评论 -
WPF-应用程序单例模式
WPF程序如何只允许打开一个窗口,当窗口存在时,激活窗口。单例模式微软社区有发表这个文章,http://blogs.microsoft.co.il/arik/2010/05/28/wpf-single-instance-application/步骤:1、项目中新增SingleInstance.cs文件2、添加引用System.Runtime.Remoting3、app.xam...转载 2019-08-22 09:13:26 · 1468 阅读 · 1 评论 -
Winform和WPF窗口体系区别
Winform 每个窗口和内部控件都有窗口句柄获取方法:this.HandleWPF窗口和内部控件共用一个窗口句柄获取方法:new WindowInteropHelper(this).Handle 渲染方式:DX引擎引申:WPF窗口中渲染CEF会出问题,而Winform就不会,归根还是二者渲染方式不一样待续。。。。。。...原创 2019-04-25 17:58:11 · 1655 阅读 · 0 评论 -
WPF体系结构
WPF体系结构图:WPF类层次结构图:PS:1.System.Threading.DispatcherObject类,通过继承此类,用户界面中的每个元素都可以检查代码是否在正确的线程上运行。2.System.Windows.DependencyObject类,提供对依赖属性的支持。3.System.Windows.Media.Visual类,每个元素本质都是一个Visu...转载 2018-10-30 14:45:34 · 356 阅读 · 0 评论 -
WPF 的 Adorner、Decorator 和 AdornerDecorator
Decorator 和 Adorner它们都有“装饰品”的意思。Decorator类负责包装某个UI元素,以提供额外的行为。它有一个类型为UIElement的Child属性,其中含有待包装的内容。Decorator可被用于添加简单的视觉装饰,例如边界(Border),或者更复杂的行为,例如ViewBox,AdornerDecorator,或是InkPresenter。当你从Decora...转载 2018-09-25 10:21:38 · 2728 阅读 · 0 评论 -
WPF核心类图谱
转自:https://blog.csdn.net/muzizongheng/article/details/51378999WPF核心类图谱,如下:转载 2018-09-18 13:54:45 · 727 阅读 · 0 评论 -
UIElement.RenderTransformOrigin 使用详解
对象中心点用来定义所有RenderTransform变换中相对位置的的参考点,默认为图形的左上即(0,0),该属性值为相对值,即x和y方向的(0-1)分别指以本图形所在矩形(在Expression blend中可以看到 )的长和宽为参照的百分比,该属性以图形所在矩形默认状态下左上角为参考RenderTransformOrigin 已使用某种程度上使用了非标准的 ...原创 2018-07-13 11:16:56 · 1550 阅读 · 0 评论 -
WPF Panel的性能分析(转)
原地址:http://www.cnblogs.com/tmywu/archive/2013/05/13/3075331.html?utm_source=tuicool&utm_medium=referral 大家知道WPF有多种Panel,如Canvas,Grid,StackPanel,DockPanel,WrapPanel,VirtualizingPanel等。在一些场景下可以选择任...转载 2018-07-13 11:04:43 · 2436 阅读 · 0 评论 -
5个很好用的 .Net 分析工具
转自:https://blog.csdn.net/testing_is_believing/article/details/24870349【编者按】作者 Senthil Kumar曾在自家的网站. NET试验过不少分析工具,下面这些是他试用之后的收集:1. 网站内App的性能和内存分析器JetBrains dotTrace来自JetBrain,是针对网站内App的性能和内存分析器,能有...转载 2018-07-18 16:49:23 · 1118 阅读 · 0 评论 -
你必须知道的.NET——内存分配
转自:https://www.cnblogs.com/cheshui/archive/2012/09/29/2707910.html在分析内存分配时,应该先了解关于堆栈的区别堆的分配向高地址扩展,而栈的分配向低地址扩展。二。内存分配关于内存的分配,首先应该了解分配在哪里的问题。CLR管理内存的区域,主要有三块,分别为:· 线程的堆栈,用于分配值类型实例。堆栈主要由操作系统管理,而不...转载 2018-07-18 12:19:59 · 909 阅读 · 0 评论 -
WPF性能调试系列 – 内存监测
转自:http://www.cnblogs.com/jingridong/p/6385661.htmlWPF性能调试系列文章: WPF页面渲染优化:Application Timeline WPF页面业务加载优化:Ants Performance Profiler WPF内存优化:Ants Memory Profiler 内存监测(Ants Memor...转载 2018-07-18 09:30:26 · 1096 阅读 · 0 评论 -
WPF性能调试系列 – 应用程序时间线
转自:http://www.cnblogs.com/jingridong/p/6097240.html WPF性能调试系列文章: WPF页面渲染优化:Application Timeline WPF页面业务加载优化:Ants Performance Profiler WPF内存优化:Ants Memory Profiler Ants Perform...转载 2018-07-18 09:28:45 · 708 阅读 · 0 评论 -
WPF的BitmapImage的文件无法释放及内存泄露的问题
相信用过WPF的BitmapImage的,都在用类似这样的代码来解决文件无法删除的问题!如果看看msdn上简单的描述,可以看到这样的说明:如果 StreamSource 和 UriSource 均设置,则忽略 StreamSource 值。如果要在创建 BitmapImage 后关闭流,请将 CacheOption 属性设置为 BitmapCacheOption.OnLoad。 默认 OnDema...转载 2018-07-05 15:51:45 · 3213 阅读 · 0 评论 -
WPF后台动画 DoubleAnimation
1.移动动画需要参数(目标点离最上边的位置,目标点离最左边的位置,元素名称)Image mImage = new Image();FloatInElement(100,100,mImage);/// <summary> /// 移动动画 /// </summary> /// <param name="top">目标点相...原创 2018-06-28 14:11:30 · 7679 阅读 · 0 评论 -
wpf动画——缓动动画Animation Easing
转自:https://www.cnblogs.com/xwlyun/archive/2012/09/11/2680579.html1.新建一个wpf应用程序(silverlight亦可),xaml简单修改布局如下:<Window x:Class="WpfApplication45.MainWindow" xmlns="http://schemas.microsoft.com/w...转载 2018-06-28 13:49:48 · 2363 阅读 · 0 评论 -
轻量MVVM模式实践
文章来源:http://www.cnblogs.com/anding一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。 MVVM是WPF中一个非常实用的编程模式,充分利用了WPF的绑定机制,体现了WPF数据驱动的优势。 图片来源:(WPF的MVVM) 关于MVVM...转载 2018-06-08 11:06:39 · 428 阅读 · 0 评论