文章分类 -  WPF

摘要:这篇小记源自于codeproject上的一篇文章http://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explained关于MVVM,它是一个对WPF和silverlight有很多好处的模式,如果你的开发伴随着下面的问题,那么你可以尝试尝试MVVM。你是否是与一个设计者合作一个项目并且设计和开发都很复杂而且几乎是要同时开始工作?你是否需要对你的方案进行彻底的单元测试?在你的团队中,你是否需要一个可重用的模块?你是否想改变你的界面而不影响到后台逻辑?需要了解的概念Model 模型 模型-领域模型,Model描述. 阅读全文
posted @ 2013-09-16 16:18 超级塞亚人 阅读(182) 评论(0) 推荐(0)
摘要:在wp/silverlight/wpf也会经常看到控件模板。经常混淆的应该是DataTemplate和ControlTemplate,本篇文章就来谈谈两件衣服DataTemplate和ControlTemplate的关系。本篇文章主要会以wpf控件为主,以便最后的源码大家都可以打开。一、ContentControl中的DataTemplate在开始之前,我们先去看一下ContentControl的定义,无论在wp还是在wpf中其都有下面两个属性: public object Content { get; set; } public DataTemplate ContentTemplate { 阅读全文
posted @ 2013-08-11 18:18 超级塞亚人 阅读(171) 评论(0) 推荐(0)
摘要:public new string Title { get { return (string)GetValue( TitleProperty ); } set { SetValue( TitleProperty, value ); } } public string Message { get { return (string)GetValue( MessageProperty ); } set { SetValue( MessageProperty,... 阅读全文
posted @ 2013-08-07 08:59 超级塞亚人 阅读(1563) 评论(0) 推荐(0)
摘要:平时记录东西都是用记事本,时间久了很难找到以前记的东西. 平时在家都用有道笔记, 因此就模仿着做了一个, 先看下实际运行图片:1. 初始化的时候2.添加了些笔记3. 添加笔记本窗口4.改了模板,做的一个还算好看的菜单5.日记列表可以选择不同的视图, 比如我改成了简单列表视图6.模仿云笔记做的历史版本功能,只能看,还没做还原和对比功能7.日记可以导出成不同格式,这个东西真心没用8.顶部也有个菜单谈下这个小东西:1. 程序采用WPF+MVVM实现, 修改了大部分控件的Template, 以达到高仿的目的. 同时, 也得感谢有道在安装目录下有一套图片资源,可以原封不动的搬过来美化界面.2. 实现了笔 阅读全文
posted @ 2013-07-25 09:59 超级塞亚人 阅读(2579) 评论(3) 推荐(1)
摘要:4x4的方格作为棋盘 16张牌打乱之后背着放在棋盘的格子里 牌分为黑红两队 规则是象吃狮 狮吃虎 吃豹狼吃狗吃猫 吃鼠 最后鼠吃象 同级相吃两个都消失 先手的那个人先翻一张牌,翻到什么颜色就用什么颜色.后翻的只能用另一种颜色 第一个翻开第一张牌确定了双方各用什么颜色的牌 然后第二个也翻一张,然后第一个人开始走第二步 他可以选择继续翻牌,或者用已经翻开的牌去撞他周围的4张牌 撞完哪张就翻开哪张,如果是自己的的牌,就完成本回合,如果是对方的牌,按照规则,谁小谁被杀死.被撞得小的话就吃了它,然后占领他的格子 玩到后期的时候,棋盘就有空格了,这时候可以选择上下左右走一步或者继续撞牌 在中间没有其他子的 阅读全文
posted @ 2013-05-25 10:33 超级塞亚人 阅读(342) 评论(0) 推荐(0)
摘要:搞UI对大多数程序员来说,是个噩梦,因此,我们总是追求使界面看起来更加协调,不土气。在本文,我将分享一个非常漂亮且具现代化风格的WPF界面框架,这里,将介绍这个界面框架和如何来使用这个界面框架,后面附有示例源码。1 认识一下这个界面框架首先我们来看看这个界面框架的风格和功能。以下图片是这个界面框架的大致风格。这个界面框架实现了3级菜单,第三季菜单可以用List或者Tab方式。下图介绍了一级菜单、二级菜单和内容页面。当需要展示三级菜单时,系统可以有如下风格。该界面还提供了换外观颜色、换皮肤和设置字体功能。此外,该界面还提供了回退功能,允许点击界面左上角的返回按钮回到上一个界面。界面的功能介绍已经 阅读全文
posted @ 2013-05-06 10:01 超级塞亚人 阅读(4215) 评论(0) 推荐(0)
摘要:我一直很疑惑百度、谷哥搜索框的下拉联想功能是怎么实现的?是不断地查询数据库吗?其实到现在我也不知道,他们是怎么实现这么高效的。后来在博客园无意邂逅了“鹿神”,搜索引擎唉,听起来就很高端。于是研究了一段时间后就产生了这个WPF的下拉联想控件。名称:简拼:全拼:区号:邮编: 这么强大的功能代码一定会复杂吧?不是的哦,亲~代码只有短短几句哦界面如下:(下拉框后面的数字为查询的延时,可见效率还是很高滴)XAML:<cop:CopAutoCompleted url="{Binding Text, ElementName=DirTextBox}" columnNames=&quo 阅读全文
posted @ 2013-02-05 18:09 超级塞亚人 阅读(431) 评论(0) 推荐(0)
摘要:Beetle可靠、高性能的.Net Socket Tcp通讯组件 支持flash amf3,protobuf,Silverlight,windows phoneKFilter是一个高性能的关键字过滤组件,它提供了灵活的过滤机制能自适应大小写,半全角,简繁和分隔符处理等。在一台I7的电脑上KFilter处理6k个关键字单线程每秒可以达到上千万字检索的效能。关键字识别KFilter的关键字处理是非常灵活,它不紧识别关键字本身,对该关键字的大小写,半全角,简繁和分隔符等都会归纳到识别范围内。KFilter在处理数字和英文的时候也做了一些其他方面的工作,主要防止错杀的情况;如ava,java显然不是属 阅读全文
posted @ 2013-02-05 18:03 超级塞亚人 阅读(216) 评论(0) 推荐(0)
摘要:深入浅出WPF笔记主要包括:XAML语法x名称空间详解控件和布局深入浅出话Binding深入浅出话属性深入浅出话事件深入浅出话命令深入浅出话资源深入浅出话模板绘图和动画 阅读全文
posted @ 2012-10-06 11:30 超级塞亚人 阅读(133) 评论(0) 推荐(0)
摘要:这一篇我们聊聊wpf中的画刷,在wpf中如果想玩各种花哨,那么如何使用画刷则是我们的基本功,首先看一下类图 从图中可以看出,wpf有5种画刷和1种自定义画刷,都是继承自基类Brush,我们看看基类中有哪些好玩的东西。 这里有3个比较感兴趣的属性,分别属于透明度和图像转换,好,下面我们一一解说。 一:SolidColorBrush(实 这一篇我们聊聊wpf中的画刷,在wpf中如果想玩各种花哨,那么如何使用画刷则是我们的基本功,首先看一下类图 从图中可以看出,wpf有5种画刷和1种自定义画刷,都是继承自基类Brush,我们看看基类中有哪些好玩的东西。 这里有3个比较感兴趣的属性,... 阅读全文
posted @ 2012-09-29 13:44 超级塞亚人 阅读(155) 评论(0) 推荐(0)
摘要:前面的记录有的地方已经用到了资源,本文就来详细的记录一下WPF中的资源。我们平时的“资源”一词是指“资财之源”,是创造人类社会财富的源泉。在计算机程序中,只要是对程序有用的对象都可以统称资源。不过本文只记录WPF对象级资源和二进制资源。一、WPF对象级资源的定义与查找 在WPF中,每一个界面元素都是一个对象,并且都有一个名为Resources的属性,这个属性继承于FrameworkElement类,其类型为ResourceDictionary。由于元素的属性名是复数形式,所以每一个对象可以拥有多个资源,由于资源的多样化,获取到的资源的类型为object类型,所以在获取到资源时,必要时要进行转. 阅读全文
posted @ 2012-09-27 09:26 超级塞亚人 阅读(247) 评论(0) 推荐(0)
摘要:一、认识命令1.1命令的特点 提到“命令”,我们应该想到命令的发出者,命令的接受者,命令的内容,准备工作,完成任务,回报工作。。。与事件中的发送者,接受者,消息,处理,处理,处理一一对应,如果是单纯的几个对应关系,的确用事件是能够代替的,不过,命令相对事件有其自己的特点的。比如,古时候,如果两个部落发动战争,经常在出军之前,做了充分的准备,才可能一声令下,冲啊!相反,如果没有准备好的话,一定会限制,军队不能随意出军,所以命令具有限制性。除此之外,命令一旦下达是不经常更改的。如在软件里面,一般Ctr+C命令是复制,没有哪个软件用这个命令表示粘贴的呢?所以说命令具有普遍性,除此之外,命令有自己的. 阅读全文
posted @ 2012-09-26 09:19 超级塞亚人 阅读(187) 评论(0) 推荐(0)
摘要:由于最近一直在学习Windows Phone相关知识,而伴随着WIN8的发布,新一代的编程使得很多语言使用唯一的核心库“Winmd”以及可以基于WINRT之上的AppStore环境设计。 而MVVM是一种架构模式,主要在WPF、Silverlight和WP7开发里使用,它的目标是从视图层移除几乎所有代码隐藏(code-behind)。交互设计师可以专注于使用XAML表达用户体验需求,然后创建和视图模型的绑定,而视图模型则是由应用程序开发者开发和维护的,最大好处之一是分离关注点,以便用户体验设计师和应用程序开发者可以并行工作。 稍微了解MVVM以后,我们就开始着手实现MVVM吧。实现的功能就.. 阅读全文
posted @ 2012-09-14 13:24 超级塞亚人 阅读(172) 评论(0) 推荐(0)
摘要:一、Binding对数据的校验与转化 在上一篇中有提到过绑定像是一座桥梁,在桥梁两端要有源和目标以及在桥梁上面我们可以设立关卡对数据进行验证,除此之外,源提供的数据有时不一定是目标想要的类型,但是可以通过转化成为目标需要的类型。1.1Binding的数据验证 在软件设计过程中,数据的验证是经常要实现的。要实现Binding的数据验证,主要通过Binding的ValidationRoles属性来实现。下面让我们认识一下ValidationRoles(验证条件):可以看到ValidationRoles是复数形式,应该可以想到他是一个Collection<ValidationRole>类 阅读全文
posted @ 2012-09-13 09:04 超级塞亚人 阅读(159) 评论(0) 推荐(0)
摘要:上一节,有记录写到:在WPF里,数据驱动UI,数据占核心地位,UI次之。怎么恢复数据的核心地位,那就要先了解一下Binding。一、Binding 基础1.1WPF中Data Binding的带来的方便 在设计架构的时间,大家都很重视分层,为什么分层呢,其实分层就是为了更好的复用共同的类库、更好的分工,以便更好的施工。。。,无论是为什么,就算它是一种时尚吧。为了追逐它,先记录一下一般程序的层次:数据层,逻辑处理层,表现层。具体的每一个层可以再去细分。很多时间对于逻辑处理层和表现层经常混成一片,最终成了邯郸学步。在WPF中,如果绑定用的好的话,这种不好的结果将会很简单的避免。具体是怎么样避免的. 阅读全文
posted @ 2012-09-12 09:59 超级塞亚人 阅读(238) 评论(0) 推荐(0)
摘要:从这一篇往前看,其实wpf中还有很多东西没有讲到,不过我的原则还是将比较常用的知识点过一遍,如果大家熟悉了这些知识,基本功也就打的差不多了,后续可以等待老邓的wpf细说系列,这里我先顶老邓一下。一:用户控件(UserControl) 对于用户控件的认识,我想大家还是很熟悉的,因为这玩意我们在webform或者在mvc中用的可多了,我们看看wpf中怎么使用,首先我们要知道"用户控件“继承自UserControl,而UserControl继承自ContentControl,也就是上上一篇说的”内容控件”。第一步:在vs中的添加项中找到一个“用户控件WPF”,点击添加即可。第二步:我们发现 阅读全文
posted @ 2012-07-16 09:04 超级塞亚人 阅读(173) 评论(0) 推荐(0)
摘要:这篇我们来大概的看一下WPF的各种神马控件,首先我们要知道所有的wpf控件都是继承自Control,从用途上可以分为四种 1:内容控件(Content Controls) 2:条目控件(Items Controls) 3:文本控件(Text Controls) 4:范围控件(Range Controls)一:内容控件 内容控件的最大的特征就是有一个Content属性,从前面的文章中,我们多多少少也知道Content接收的是一个Object类型,或许我们会立即想到莫非Button就是一个内容控件,确实,Button算是一个内容控件,凡是内容控件都继承自ContentCo... 阅读全文
posted @ 2012-07-09 09:16 超级塞亚人 阅读(414) 评论(0) 推荐(0)
摘要:今天说下wpf中的模板,前面一篇中我们讲到了style,但是style所能做的仅仅是在现有控件的基础上进行修修补补,但是如果我们想彻底颠覆控件样式,那么我们就必须使用这一篇所说的模板。 老外写书都喜欢在篇头搞一个类图,方便我们宏观认识,这里我也上一个。一:控件模板1:ControlTemplate 我们知道wpf的控件都是继承自Control,在Control类中有一个Template属性,类型就是ControlTemplate。那么利用这个ControlTemplate就可以彻底的颠覆控件的默认外观,这里我把一个checkbox变成一个小矩形,蛮有意思的。 1 <Window x:Cl 阅读全文
posted @ 2012-07-09 09:14 超级塞亚人 阅读(179) 评论(0) 推荐(0)
摘要:在webform中,如果提到“绑定”二字,相信大家都不会陌生,绑定,让我们的代码更加的简洁优美,在wpf中也存在各种神马的绑定,当然使用上都是行隔理不隔。 一: 控件到控件的绑定 既然是绑定,那么肯定就有”源对象“和”目标对象“两种状态实体,从图的角度上来说存在三种状态:确实在wpf中存在这三种模式的对应方式,1:OneWay 正如图A所说,Source影响着Target,但是Target却影响不到Source。2:OneWayToSource 也正如图B中所表述的一样,Target影响Source,而Source却影响不到Target。3:TwoWay 这个也就相当于无向图的边,Sou... 阅读全文
posted @ 2012-07-09 09:14 超级塞亚人 阅读(151) 评论(0) 推荐(0)
摘要:首先我们还是新建一个空项目,看一下VS给我们默认生成的xaml结构。<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525 阅读全文
posted @ 2012-07-09 09:12 超级塞亚人 阅读(341) 评论(0) 推荐(0)