星火燎猿
我们只用技术说话 眼界决定境界,定位决定地位! 留言私信直接说问题,不要问在不在,我看到了会第一时间回复。
展开
-
WPF里面ListBox修改鼠标悬停颜色和选中状态颜色
其实ListBox在前端渲染效率上还是远远优于ItemControl的,100条数据的渲染,ListBox的渲染速度是毫秒级别,但是ItemControl就需要慢好多。下面这个例子就是用ListItem渲染的模拟CheckBoxList的实现方案。原创 2024-01-04 20:00:00 · 846 阅读 · 0 评论 -
WPF里面的Dispatcher详解
在WPF应用程序中,是一个重要的属性。它允许开发者在WPF应用程序的主线程上执行操作,这对于确保UI响应性和避免假死(程序没有响应用户输入)非常关键。主线程负责接收输入、处理事件、绘制屏幕等任务。为了避免在主线程上执行耗时的操作,开发者可以使用或者方法,将需要在主线程上执行的代码块放入主线程的工作项队列中执行。原创 2023-12-11 19:33:41 · 1685 阅读 · 0 评论 -
WPF使用WebBrowser 后台代码和前端脚本互操作
WPF使用WebBrowser和网页进行互操作必须借助于COM技术,我们抽象出来一个Helper。原创 2023-12-09 14:00:00 · 513 阅读 · 0 评论 -
WPF使用WebBrowser报脚本错误问题处理
WPF使用WebBrowser报脚本错误问题处理,我们都知道WPF自带的WebBrowser都用的IE内核,但是在特殊的条件下我们还需要用到它,比如展示纯html简单的页面。再展示主流页面的时候比如用到Jquery高级库或者VUE等当前主流站点时经常就会报JS脚本错误,在Winform里面我们一句代码就能搞定,但是WPF没有提供相关的方法,今天我们就自己来实现一个扩展方法来实现。原创 2023-12-08 21:15:00 · 1554 阅读 · 0 评论 -
Prism框架快速注册带有特性标签的类型
最近用Prims框架,真的是懒得手动注册各种类型,不利于团队开发工作,各种dll强耦合,后期维护还麻烦,这次我们带来了一个快速注册的类来快速提高开发效率。重点用到的就是通过反射出dll里面的类型,然后根据特性或者类型过滤来完成快速注册的功能。原创 2023-12-08 20:30:00 · 420 阅读 · 0 评论 -
揭开WPF里面XAML可以通过http引入命名空间的神秘面纱
指定 XAML 命名空间与 CLR 命名空间之间按程序集进行的映射,然后 XAML 对象编写器或 XAML 架构上下文将其用于类型解析。XmlnsDefinition需要用到System.Windows.Markup命名空间,请务必引用System.Xaml.dll,WindowsBase.dll两个程序集,否则没有该函数。是不是恍然大悟了,可以看到每个”网址”其实都代表着后台常见的一个命名空间,做了一个映射,所以我们引用不同系统自带dll组件,会自动添加不同的”网址”。引入,而我自己开发的就只能通过。原创 2023-12-07 20:30:00 · 757 阅读 · 0 评论 -
.Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
从上面各个操作系统支持情况来看,.Net6是唯一一个支持Win7系统的了,.Net6以后的版本都抛弃了Win7版本,因为我们主要的方向是客户端版本,为了兼容市面上的大部分电脑,Win7操作系统用户不能抛弃,所以现在能升级到的版本也就是.Net6版本,虽然明年11月微软也停在了对它的支持,但是还有1年的时间也算是一个灵活过渡。原创 2023-12-04 20:30:00 · 2508 阅读 · 0 评论 -
WPF使用Prism框架批量注册Page,Window,UserControl等视图组件
为了提高Prism框架下面的注册视图资源的简单性和提高后期可维护性,本文将使用prism自带的通过反射来批量注册视图资源,帮助我们快速高效的完成开发任务。我们平常注册前端视图资源,一般都是在方法里面,使用的方法来批量注册可导航的视图资源。原创 2023-12-01 23:45:12 · 896 阅读 · 0 评论 -
WPF Mvvm模式下面如何将事件映射到ViewModel层
平常用惯了Command绑定,都快忘记传统的基于事件编程模式了,但是Commond模式里面有个明显的问题,就是你无法获取到事件源的参数。很多大聪明肯定会说,这还不简单,通过自己写控件,给控件加个自定义属性不就行了,想要啥事件就写啥事件进去,完全自主可控。但是对于写控件这种事情来说大部分人都还是比较吃力的,及时能写,你能保证你写的没有bug,后期使用不会引入别的问题。其实这一块WPF底层早都已经考虑到了并封装好了常用的Behaviors,只是好多人还不了解咋使用罢了。原创 2023-12-01 22:30:00 · 1771 阅读 · 0 评论 -
WPF绘制进度条(弧形,圆形,异形)
WPF里面圆形进度条实现还比较麻烦,主要涉及到的就是动态绘制进度条的进度需要用到简单的数学算法。其实原理比较简单,我们需要的是话两条重叠的弧线,里面的弧线要比里面的弧线要宽,这样简单的雏形就出来了。我们可以用Path来绘制弧线,代码如下:出来的效果:Path里面我们重点用到的就三个属性值:我们下面李来看一下如果我们不设置:,的效果图:是不是很突兀。这个方案还算有趣,Ellipse 明明是圆形,却能用来画弧形。为了用 Ellipse 显示进度,我们会用 StrokeDashArray 控制它的边框长原创 2023-11-30 20:30:00 · 2636 阅读 · 0 评论 -
WPF前端实现人脸扫描动画效果
StartPoint渐变画刷的起点,默认规定起点坐标是(0,0)。注:这个0是指整个长度的0%的位置,而不是坐标为0。EndPoint渐变画刷的终点,默认规定终点坐标是(1,1)。注:这个1是指整个长度的100%的位置,而不是坐标为1。即0.5指的是影响一半的长度。如图所示,从(0,0)到(1,1)的渐变画刷会使颜色从左上角开始,平行向右下角位置渐变颜色。该值指定渐变画笔的定位坐标的解释方式。原创 2023-11-29 14:52:23 · 1414 阅读 · 0 评论 -
WPF不使用AllowsTransparency实现高性能透明背景异形窗体
属性 GlassFrameCompleteThickness 作为实用工具提供,使你能够将玻璃框架的粗细设置为将玻璃扩展到整个窗口的命名属性。如果玻璃效果不可用,则应提供不使用玻璃框架的替代窗口样式。设置调整窗口大小的模式,这里我设置的是允许调小窗口大小,意思就是不允许窗口比我初始化的窗口还大,这个在实际情况中跟进自己需要设置。是设置窗口展示效果,None代表的是不显示边框,也就是不显示标题栏以及全屏,最小化,关闭等按钮。这个是我们这次用到的核心组件,通过它我们就可以设计一个高性能的背景透明的异性窗口。原创 2023-11-27 22:00:00 · 1766 阅读 · 0 评论 -
WPF制作雷达扫描效果
要实现该功能,我们就不得不先了解一下WPF里面的RenderTransform原创 2023-11-29 20:00:00 · 847 阅读 · 0 评论 -
WPF MVVM模式下如何给Textbox设置焦点(GalaSoft.MvvmLight)
最近在使用WPF MVVM模式进行开发的时候遇到了个头大的问题,就是如何通过VM去驱动V里面的试图控件,例如最简单的通过VM里面去控制前端页面里面的文本框焦点问题,平常简单的一句话现在就感觉变得异常复杂,由于也是半路接手别人的项目,里面各种封装控件组件,遇到棘手的问题就头大。好在通过网络查找到了最终的解决方案。现做个记录,方便后期查漏补缺。原创 2022-10-27 21:00:00 · 1565 阅读 · 0 评论 -
WPF之MVVM解析
我们前面一节白话白眼,都只是从概念上了解了mvvm,了解和做还是差距很大,所以我们同样需要亲自动手实验来真的弄懂mvvm。 例子就取一个生活中的,用mvvm模式完成家庭的操作,比如显示查询家庭成员,增加家庭成员(娶妻生子等),减少家庭成员(嫁女老去等). 确定好这个例子我们就需要先准备一下数据,我们首先想到可能是用数据库,不过silverlight是浏览器客户端的东原创 2012-07-19 16:37:01 · 11565 阅读 · 3 评论 -
WPF深入浅出话资源
我们把有用的东西称为资源。“兵马未动,粮草先行”-----程序中的各种数据就是算法的原料和粮草。程序中可以存放数据的地方有很多,可以放在数据库里、可以存储在变量里。介于数据库存储和变量存储之间,我们还可以把数据存储在程序主体之外的文件里。外部文件与程序主体分离,这就有可能丢失或者损坏,编译器允许我们把外部文件编译进程序主体、称为程序主体不可分割的一部分。这就是传统意义上的程序资源(也称为二进制资源原创 2012-11-06 18:08:49 · 24031 阅读 · 5 评论 -
WPF学习之深入浅出话模板
图形用户界面应用程序较之控制台界面应用程序最大的好处就是界面友好、数据显示直观。CUI程序中数据只能以文本的形式线性显示,GUI程序则允许数据以文本、列表、图形等多种形式立体显示。用户体验在GUI程序设计中起着举足轻重的作用-----用户界面设计成什么样看上去才足够的漂亮?控件如何安排才简单易用并且少犯错误?这些都是设计师需要考虑的问题。WPF系统不但支持传统的Winfrom编程的用户界面和用原创 2012-11-08 17:55:51 · 27977 阅读 · 2 评论 -
WPF学习之绘图和动画
如今的软件市场,竞争已经进入白热化阶段,功能强、运算快、界面友好、Bug少、价格低都已经成为了必备条件。这还不算完,随着计算机的多媒体功能越来越强,软件的界面是否色彩亮丽、是否能通过动画、3D等效果是否吸引用户的眼球也已经成为衡量软件的标准。软件项目成功的三个要素是:资源、成本、时间。无论是为了在竞争中保持不败还是为了激发起用户对软件的兴趣,提高软件界面的美化程度、恰当的将动画和3D等效果引入原创 2012-11-13 17:51:39 · 57597 阅读 · 13 评论 -
模仿概念版QQ登录界面(超炫)
今天闲着没事,就用最近学习的新技术做了一个简单的例子,WPF模仿概念版QQ登录界面。WPF相关学习博客请参考:http://blog.csdn.net/fwj380891124/article/details/8194190先上图几张:界面介绍:通过上面两张图相信大家已经对整个界面有了一个大致的了解,整个界面是一个不规则的窗体,如果用过概念版QQ的朋友应该都知道原创 2012-11-20 15:42:03 · 15677 阅读 · 15 评论 -
【分享】深入浅出WPF全系列教程及源代码
本人10月份提出离职,但是交接很慢,估计年底才会交接完,趁着交接之际,自学了一下WPF,因为这是微软未来的发展趋势,自WIN7以来包括前不久发布的WIN8,核心还是WPF,在此,将自己的学习成果做一个总结,同时将自己学习积累的东西和广大博友分享,希望大家能共同进步。在文章的结尾我会将全系列的源代码地址提供给大家,有需要的朋友可以下载下来自己研究研究。由于之前申请WPF博客专栏一直没有申请下来,所以原创 2012-11-17 17:24:16 · 108218 阅读 · 45 评论 -
WPF学习之深入浅出话命令
WPF为我们准备了完善的命令系统,你可能会问:“有了路由事件为什么还需要命令系统呢?”。事件的作用是发布、传播一些消息,消息传达到了接收者,事件的指令也就算完成了,至于如何响应事件送来的消息事件并不做任何限制,每个接收者可已用自己的行为来响应事件。也就是说,事件不具有约束力。命令和事件的区别就在于命令具有约束力。的确,在实际编程工作中,即使只用事件不用命令程序的逻辑一样被驱动的很好,但我们不能原创 2012-11-05 18:08:17 · 22191 阅读 · 4 评论 -
WPF之深入浅出话事件
就像属性系统在WPF中得到了升级、进化为依赖属性一样,事件系统在WPF也得到了升级-----进化成为了路由事件(Routed Event),并在其基础上衍生出命令传递机制。这些机制在很大程度上减少了对程序员的束缚,让程序的设计和实现更加的灵活,模块之间的耦合度也进一步降低,这一章我们一起来领略一下新消息机制的风采。8.1 近观WPF的树形结构路由一词的意思大概是这原创 2012-11-02 16:06:22 · 26169 阅读 · 3 评论 -
MVVM教程(二):开始MVVM示例
在上一章中,我们只是开了个头而已,然而在这一章中,我们将看到一点实际的代码了。我构想了很久,怎样让新手能快速掌握我想要传达的知识,然后我得出一个结论:一定一定要简单化,并且要有看的见摸的着的代码实例。好吧,我们开始。打开你的VS2010,新建一个WPF项目,命名为MvvmTutorial即可。紧接着,在当前Solution添加4个文件夹,分别为:Infrastructure, Views, V转载 2012-07-21 16:45:53 · 6778 阅读 · 0 评论 -
MVVM教程(一):MVVM简介与准备工作
如果你对MVVM的概念还是不了解,可以参看下面链接:http://baike.baidu.com/view/3507915.htm我们以WPF+MVVM的本地桌面程序为背景,这样一来我们可以不去操心服务器那部分的事情,更加专注我们的MVVM。我打算把最重要的部分放到开头来讲,而接下来这最重要的部分却是全篇教程唯一没有代码的部分。好,下面开始。MVVM不是什么框架,也不是什么代码生成器,转载 2012-07-21 16:42:10 · 21472 阅读 · 0 评论 -
WPF中的MVVM模式
"设计模式"这样的话题似乎快被园子里的兄弟们写透了, 从简单的工厂到 MVC, MVP. 而关于MVVM似乎谈论得相对少些, 今天简单地说说. 值得声明的是: 这里仅仅谈论得是自己对别人发明的东西的一些理解, 可能有所偏误, 望理解. 另外, 搜索了一下,园子里 "clingingboy" 和 "高阳"大哥也谈到了这个模式, 大家不妨参考一下.在阅读以下内容以前,建议你对这些内容有所了解转载 2012-07-21 11:10:08 · 2652 阅读 · 0 评论 -
MVVM教程(三):第二章中示例中类的源码
在第二章中我们有讲到有DesignHelper类,下面是该类的源码:using System;using System.ComponentModel;using System.Diagnostics;using System.Diagnostics.CodeAnalysis;using System.Text;using System.Windows;namespace转载 2012-07-21 16:48:48 · 4435 阅读 · 1 评论 -
WPF进阶之接口:INotifyPropertyChanged,ICommand
INotifiPropertyChanged1. 作用:向客户端发出某一属性值已更改的通知。该接口包含一个PropertyChanged事件成员(MSDN的解释)INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。例如,考虑一个带有名为 FirstName 属性的 Person 对象。若要提供一般性属性更改通知,则 Per原创 2012-07-19 16:40:00 · 9418 阅读 · 0 评论 -
如何在WPF中调用Winform控件
功能实现主要分三步:1、添加两个引用:WindowsFormsIntegration.dll (负责整合WPF和Windows)、System.Windows.Forms.2、在 XAML文件中添加两个引用(粗体部分): xmlns:wfi ="clr-namespace:System.Windows.Forms.Integration;assembly=Window原创 2012-04-27 15:37:05 · 4374 阅读 · 0 评论 -
WPF下的地图解决方案
最近在做一个wpf的程序,需要在地图上不是很精确的定位湖北省(以及江西省)所有的移动基站以及小区,于是乎,关于在WPF下使用地图功能的技术选择,搞了很长时间,我自己知道的,有如下两种:1:MapInfo2:Gmap.net第一个,虽然说是在WPF下使用,但是,MapInfo提供的还是winform得,也就是说,您需要在wpf里面,host一个winform的用户控件(当然,也可以使用F原创 2012-04-27 11:21:10 · 11971 阅读 · 0 评论 -
c#中子线程控制进度条的一个简单例子
这个问题来自社区提问,代码保留一份用来以后回答 using System; using System.ComponentModel; using System.Windows.Forms; namespace WindowsApplication4原创 2011-10-09 20:21:47 · 1259 阅读 · 0 评论 -
wpf只运行一个实例
在winform下,只运行一个实例只需这样就可以:1. 首先要添加如下的namespace:using System.Threading;2. 修改系统Main函数,大致如下: bool bCreatedNew; //Create a new mutex using specific mutex name M原创 2012-07-24 11:03:52 · 3790 阅读 · 0 评论 -
WPF 下无边框窗体改变大小和移动
最近一直在学习 WPF,看着别人做的WPF程序那么漂亮,眼红啊~ 很多漂亮的程序都是无边框的。于是无边框窗口操作就是最重要的了。无边框窗口的操作一直以来相关的资料就很少。WPF 下的就更少了,有的大多是无边框窗体的移动。在得到群里高人的指点,再查了一些资料之后,终于把问题解决了。 废话不多说,直接来看看如何实现吧!其实现原理很简单:拦截并处理 Windows 消息:WM_NCHI原创 2012-09-25 18:17:58 · 8178 阅读 · 9 评论 -
WPF学习之深入浅出话属性
通过前面的学习,我们已经知道Data Binding是WPF“数据驱动UI”理念的基础。上一章我们将主要的精力放在了Binding的数据源这一端,研究了Binding的Source和Path。本章我们将把目光移向Binding的目标端,研究一下什么样的对象才能作为Binding的Target以及Binding将把数据送往何处。1.1 属性(Property)的来龙去脉程序的本质就原创 2012-10-31 09:59:23 · 18700 阅读 · 9 评论 -
WPF学习之控件与布局
1 控件到底是什么?程序的本质就是“数据+算法”------用户输入原始的数据,算法处理原始数据并得到结果数据。问题就在于程序如何将结果数据显示给用户。同样一组数据,你可以使用LED阵列显示出来,或者以命令行模式借助各种格式控制符(如TAB)对齐并输出,但这些都不如图形界面(GUI Graphic User Interface)来的友好和方便。GUI的方便在于它对数据展示的直观性,程序原创 2012-10-23 17:25:37 · 21496 阅读 · 3 评论 -
WPF学习之X名称空间详解
X名称空间里面的成员(如X:Name,X:Class)都是写给XAML编译器看的、用来引导XAML代码将XAML代码编译为CLR代码。4.1X名称空间里面到底都有些什么?x名称空间映射的是:http://schemas.microsoft.com/winfx/2006/xaml,望文生义,它包含的类均与解析XAML语言相关,所以亦称之为“XAML名称空间”。与C#语言一样,XAML也有原创 2012-10-22 18:51:59 · 39063 阅读 · 2 评论 -
WPF学习---系统的学习XAML语法
1,XAML文档的树形结构:UI在用户眼里面是个平面结构。如下图所示,在用户眼里看来,这个界面就是一个窗体里面平铺了4个文本框和一个按钮的界面。在传统的Visual C++、Delphi、Visual Basic6.0和Windows Form程序员的思维里,UI也是一个平面的结构。因此,程序员要做的事情就是根据美工给的给定的UI布局把控件安置在窗体的表面,并用使用长度原创 2012-10-20 17:43:08 · 28452 阅读 · 8 评论 -
WPF之Binding深入探讨
1,Data Binding在WPF中的地位程序的本质是数据+算法。数据会在存储、逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要。但算法在3层中的分布是不均匀的,对于一个3层结构的程序来说,算法一般分布在这几处:A。数据库内部。B。读取和写回数据。C。业务逻辑。D。数据展示。E。界面与逻辑的交互。A,B两部分的算法一般都非常稳定,不会轻易去改动,复用性原创 2012-10-24 18:09:58 · 114063 阅读 · 34 评论 -
WPF之从0开始学习XMAL
剖析最简单的XMAL代码:<Window x:Class="WpfApplication2.Window2" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"原创 2012-10-19 15:20:24 · 34908 阅读 · 12 评论 -
WPF之XMAL----XMAL概览
微软为了把开发模式从网络开发移植到桌面开发和富媒体网络程序的开发上,微软创造了一种新的开发语言------XMAL(读作ZAML),XAML全称Extensible Application MarkUp Language。即可扩展应用程序标记语言。它在做桌面开发和富媒体网络程序开发中扮演HTML+CSS+JS的角色,成为设计师和程序员沟通的枢纽。 现在设计师和程序员一起工作,共原创 2012-10-18 14:45:44 · 27698 阅读 · 6 评论 -
前言:WPF之What&Why
自古以来,生产工具的先进程度就代表了生成力的先进程度-------生成力的发展要求人们不断的研发出新的生产工具,新生成工具的诞生又使得生产效率飞越。作为劳动生产的一种,计算机软件开发也需要工具,随着程序员们手中的工具越来越强大,软件开发的效率和质量明显提高。善于学习和掌握新工具、新技术的程序员们也总是能得到更多的实惠。 微软Windows操作系统已经成功推出10多年,在WInd原创 2012-10-18 12:14:02 · 24744 阅读 · 8 评论