.net
文章平均质量分 73
openzpc
这个作者很懒,什么都没留下…
展开
-
C# 中字体和颜色的XML序列化
C#中提供的XmlSerializer类可以将Object序列化到xml文档,也可以从xml文档中反序列化对象XmlSerializer中的Serialize和Deserialize方法可以用于Object的序列化和反序列化,但Xmlserializer无法直接序列化Font和Color类型数据原创 2015-08-26 11:42:12 · 4030 阅读 · 0 评论 -
讨论一下数据文件的存储位置
在写程序时,经常会遇到读写数据文件的情况,比如载入(保存)配置文件等。 一般用户在安装程序时,会选择默认的目录”Program Files”或者”Program Files(x86)”。以前都是直接把数据文件放到程序根目录中,所以数据文件就存储在”Program Files\xxx”文件夹下。 最近才知道这样做其实有可能会产生“Access Denied”异常。想要把数据写入一个合理的位置,原创 2016-08-08 15:26:20 · 3467 阅读 · 0 评论 -
浅谈WPF中的MVVM
浅谈WPF中的MVVM一些基础知识WPF中的一个重要特性就是数据绑定(data binding),简单的说就是你有一些数据要显示给用户,你可以把数据和xaml进行绑定。WPF由2部分组成:描述GUI布局和效果的xaml文件,和xaml关联的cs文件。如果你想最大程度上的复用你的代码,最好的方法就是使用MVVM(Model、View、ViewModel)模式,这样可以保证你的View部分包含的代原创 2016-07-29 17:43:40 · 966 阅读 · 0 评论 -
C#中的垃圾回收
C#中的垃圾回收简单说一下C#中的内存管理、垃圾回收和资源管理为什么需要垃圾回收我们每次在C#中创建一个对象(Object),CLR都会在堆中给Object分配一块内存,但是系统内存总有用完的时候,这是就需要清理一些用过的内存 CLR会判断所有创建出来的对象中,那些不会再被程序用到,然后把它们销毁。任何进程被触发后,都会从物理内存中分配到一块虚拟空间,程序处理的也是虚拟空间而不是物理内存。GC分配原创 2016-07-23 16:24:24 · 1089 阅读 · 0 评论 -
色子作画 Dice Mosaic
色子作画 Dice Mosaic 创意应该是来自http://my.tv.sohu.com/us/5721245/4911597.shtml,其实这件事可以用PS弄出来,但是比较费时间,所以花了一天时间给他们写了一个小程序。程序参考了这篇文章http://blog.jobbole.com/8563/。程序原理很简单,首原创 2016-01-28 11:12:41 · 713 阅读 · 1 评论 -
C# WPF MediaElement 停在第一帧
使用WPF中的mediaelement控件开播放视频很容易,直接设置它的Source然后Play就可以了,最近有一个需求是加载视频后,先停在第一帧,一段时间后再根据需求开始播放视频,我开始的想法是加载视频后开始播放,然后马上暂停。 MediaElement _video = new MediaElement(); _video.Source = n原创 2015-12-26 17:44:11 · 4553 阅读 · 0 评论 -
WPF动画结束后的行为方式
在WPF中可以使用Animation来完成动画功能,如移动,旋转等,最近写的一个程序需要实现控件的移动,包括自动移动和手动控制。原理很简单,就是改变控件的Margin属性。自动移动就是通过一个ThicknessAnimation的From 和To属性来控制Margin Storyboard sbQue = new Storyboard();原创 2016-01-26 17:37:01 · 7703 阅读 · 2 评论 -
C#中生成不重复随机数
如果只是生成一个随机数,C#中的Random函数就足够用了,但如果需要生产若干个随机数,且这些数不能重复,就需要自己来写相应的方法了。1.使用List来存储随机数,List.Contain方法来判断生成的随机数是否已经存在以在1-10中取5个不重复的随机数为例 public List Generate1() { Random ran原创 2015-11-03 08:45:41 · 10422 阅读 · 0 评论 -
C#中List的排序
前些天写程序时遇到这样一个问题:在一个List中存储了几个Point类型的坐标,需要根据这些坐标的X轴数值进行排序当时的想法是使用List.OrderBy方法List1.OrderBy(p => p.X); //List1中存储了若干Point变量但是List1并没有像预期的那样,按照X轴坐标排序,后来查了一些资料后,找到了解决办法:声明一个IEnumerableT> 枚举器,然后把Ord原创 2015-10-10 11:05:10 · 837 阅读 · 0 评论 -
WPF 中控件的遍历
遍历WPF中的控件,最简单的方法时foreach,如Grid中有2个Ellipse和若干个Line,我想找到这两个Ellipse,直接使用foreach就可以了foreach(var v in Grid1.Children){ if(v is Ellipse) .......}但如果是找到这些控件并将其删除,就不能用foreach语句了foreach(var v in Grid1原创 2015-10-08 17:30:59 · 6906 阅读 · 0 评论 -
WPF中画虚线
在WPF中,画线的方法十分简单,只要声明一个Line然后添加到指定的位置就可以了,但Line并不仅仅只能画一条直线,还可以对直线进行修饰。1.Line.StrokeDashArray属性StrokeDashArray是一个双精度字符串,指示用于勾勒形状轮廓的虚线和间距的样式。2.Line.StrokeDashCap属性获取或设置一个 PenLineCap 枚举值,该值指定如何绘制虚线的两端。3.Li原创 2015-09-15 15:13:19 · 17709 阅读 · 0 评论 -
C#使用DirectShow播放视频文件
最近在开发一个视频播放软件,主要要求就是循环播放多个视频文件,并且要求两个视频文件切换时,不能有黑屏现象发生。无论是使用Winform的Mediaplayer控件还是WPF的MediaElement控件,在一个视频播放完毕切换到另一个视频时,都会有一个短暂的黑屏情况,于是我就把目光放在了DirectShow上面。下面说一下如何使用DirectShow进行视频播放。使用DirectShow,原创 2015-09-14 18:03:29 · 7135 阅读 · 1 评论 -
使用PropertyGrid是出现无法找到System.String上的构造函数的解决方法
最近在写一个小程序时,遇到这样的位置一个自定义类中,有一个List的属性,用于存储一些IP地址,但是我声明了这个自定义类后,把它关联到PropertyGrid上,在给List添加内容时,出现“无法找到System.String上的构造函数”的错误,如下图所示。此问题的一个取消的解决办法是:在List这个属性定义时,添加: [Editor("System.Windows.Form原创 2015-09-10 17:05:47 · 2879 阅读 · 0 评论