摘要: 在没有接触Blend之前,自己整出了一个MultiTouchHelper,这东西是做什么的呢?就是利用附加属性让元素可以多点触控。然后某一天发现Blend里面有一个Behavior的东西,我去,原来有现成的一个叫TranslateZoomRoateBehavior!第一反应,浪费了本码农两天时间!第二反应,原来本码农的思想已经达到了这种境界(可以写出和大神类似的东西了),相信要不了多久,本码农就可以升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰,想想还有点小激动呢,嘿嘿~~第三反应,TranslateZoomRoateBehavior这玩意儿的名字老长了,而且得添加2个dll,这样 阅读全文
posted @ 2014-03-01 10:20 疯狂的懒羊羊 阅读(1913) 评论(5) 推荐(1) 编辑
摘要: 本文转自:http://liuqz926.blog.163.com/blog/static/13448936220091121104233491/组播协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机,是一种一对多的通讯方式。IP组播的好处、优势组播协议与现在广泛使用的单播协议的不同之处在于,一个主机用单播协议向n个主机发送相同的数据时,发送主机需要分别向n个主机发送,共发送n次。一个主机用组播协议向n个主机发送相同的数据时,只要发送1次,其数据由网络中的路由器和交换机逐级进行复制并发送给各个接收方,这样既节省服务器资源也节省网络主干的带宽资源。与广播协议相比,只有组 阅读全文
posted @ 2013-09-14 01:22 疯狂的懒羊羊 阅读(48318) 评论(0) 推荐(4) 编辑
摘要: 1、首先得说明的是这并不是真正的3D,模型被导出为一系列的单个图片,例如一个3D户型图,以某个视角旋转360°,渲染出一系列连续的单个图片文件。2、在Image.MouseMove事件中添加相应代码,根据move的方向(根据当前鼠标点和前一鼠标点即可判断出),来更新Image.Source(赋值为上一张or下一张图片)3、如果进展顺利,那么你就可以使你的3D模型流畅的旋转起来。然而事情的发展往往让人很不愉快。于是乎,展开各种网络搜索。略去其中各种奇葩想法,例如异步加载啦、预加载啦等等乱七八糟的。1、以空间换时间。使用List/List 预先把所有的图片都加载进内存 400张1.27M 阅读全文
posted @ 2013-07-24 22:25 疯狂的懒羊羊 阅读(3792) 评论(5) 推荐(2) 编辑
摘要: 首先感叹一下,INotifyPropertyChanged这个单词有点长,我现在都还记不住……其次再感叹一下,实现这个接口,属性的封装还是有点麻烦啊。属性什么的我就喜欢 xxx{get;set;}……不得不说我是一个很懒的猿~首先来看看一般的实现方式: public class NotificationObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// 实现依赖属性 ... 阅读全文
posted @ 2013-05-18 11:41 疯狂的懒羊羊 阅读(1295) 评论(8) 推荐(1) 编辑
摘要: WPF中可以使用MediaElement控件来进行音视频播放,然后需要做个进度条啥的,但是MediaElement.Position(进度)和MediaElement.NaturalDuration居然都不是依赖属性,简直不能忍!好吧,首先说说比较传统的做法(winform?)slider用来显示进度以及调整进度,tb1显示当前进度的时间值,tb2显示视频的时长。player_Loaded 事件中使用DispatcherTimer来定时获取当前视频的播放进度,player_MediaOpened 事件中获取当前视频的时长(只有在视频加载完成后才可以获取到)slider_ValueChanged 阅读全文
posted @ 2013-05-17 22:59 疯狂的懒羊羊 阅读(2324) 评论(0) 推荐(2) 编辑
摘要: 方法1:后台代码处理MediaEnded事件xaml:<MediaElement Name="player" MediaEnded="player_MediaEnded" Source="Videos/test.wmv" />cs:private void player_MediaEnded(object sender, RoutedEventArgs e) { //设置一下视频进度,确保从头开始播放 player.Position = TimeSpan.Zero; player.Play(); }方法2:xaml中处理M 阅读全文
posted @ 2013-05-17 16:33 疯狂的懒羊羊 阅读(3787) 评论(0) 推荐(0) 编辑
摘要: wpf制作伪3D图片浏览 阅读全文
posted @ 2013-05-14 22:09 疯狂的懒羊羊 阅读(4556) 评论(18) 推荐(0) 编辑
摘要: 1、使用Boder(一般情况):设置CornerRadius属性<Border x:Name="border" CornerRadius="20">...</Border>2、创建ClippingBorder类:View Code using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Controls;using System.Windows.Media;using System. 阅读全文
posted @ 2013-05-09 23:49 疯狂的懒羊羊 阅读(2867) 评论(0) 推荐(0) 编辑
摘要: 1、使用Canvas作为容器,子元素(如Image)的RenderTransformOrigin设置为(0.5,0.5),但是,在执行变换时并非以其中心点来变换。如在后台代码中处理:var element = e.Source as FrameworkElement;//element.RenderTransformOrigin = new Point(0.5, 0.5);Matrix matrix = (element.RenderTransform as MatrixTransform).Matrix;//var centerX=element.ActualWidth/2;//var ce 阅读全文
posted @ 2013-05-08 16:56 疯狂的懒羊羊 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 本文转自 陈希章-MVVM、MVVMLight、MVVMLight Toolkit之我见MVVM、MVVMLight、MVVMLight Toolkit之我见我想,现在已经有不少朋友在项目中使用了MVVMLight了吧,如果你正在做WPF,Silverlight,Windows Phone的开发,那么,你有十分必要的理由了解MVVM和MVVMLight。我写这篇文章的目的,是给大家做一个总结,以便更多的朋友了解并掌握MVVM。首先,要说一下MVVM的概念。MVVM严格来说,并不是一种框架,而是一个设计的模式吧。与它有关的设计模式还有MVC (现在广泛用于Web应用中),以及MVP(之前有用过在 阅读全文
posted @ 2013-05-07 22:48 疯狂的懒羊羊 阅读(472) 评论(0) 推荐(2) 编辑