.net 如何高效地使用string(转)
摘要:string是恒定的(immutable)和其他类型比较,string最为显著的一个特点就是它具有恒定不变性:我们一旦创建了一个string,在managed heap 上为他分配了一块连续的内存空间,我们将不能以任何方式对这个string进行修改使之变长、变短、改变格式。所有对这个string进行各项操作(比如调用ToUpper获得大写格式的string)而返回的string,实际上另一个重新创建的string,其本身并不会产生任何变化。String的恒定性具有很多的好处,它首先保证了对于一个既定string的任意操作不会造成对其的改变,同时还意味着我们不用考虑操作string时候出现的线程
阅读全文
posted @
2011-04-08 17:21
暗月随风
阅读(368)
推荐(0)
wpf 将对象按照正圆的顺序排列的写法
摘要:设置位置方法 private void SetPosition(Ellipse ellipse, double offset, double posOffSet, double step) { ellipse.SetValue(Canvas.LeftProperty, 50.0 + Math.Sin(offset + posOffSet * step) * 50.0); ellipse.SetValue(Canvas.TopProperty, 50 + Math.Cos(offset + posOffSet * step) * 50.0); }调用 const double offset =
阅读全文
posted @
2011-04-08 14:55
暗月随风
阅读(384)
推荐(0)
wpf 查找DataTemplate中的控件的实现方式
摘要:View Code private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) r
阅读全文
posted @
2011-04-08 11:55
暗月随风
阅读(2183)
推荐(0)
wpf 3D图形的实现(转)
摘要:3D 图形基础生成3D图形的基本思想是能得到一个物体的三维立体模型(model)。由于我们的屏幕只有二维,因而我们定义了一个用于给物体拍照的照相机(Camera)。拍到的照片其实是物体到一个平坦表面的投影。这个投影由3D渲染引擎渲染成位图。引擎通过计算所有光源对3D空间中物体的投影面反射的光量,来决定位图中每个像素点的颜色。物体的每一个表面都有一种材质(material)和一个画刷(brush)。材质定义了一个具体角度的光的反射量,而画刷定义了表面的颜色。画刷可以是一种单纯的颜色,也可以是渐变的,甚至可以是一幅图片,这些称为纹理(texture)。一个三角形的世界 在3D图形的世界里,所有物体
阅读全文
posted @
2011-04-08 11:52
暗月随风
阅读(4092)
推荐(1)
wpf list<T>与ObservableCollection<T>的区别
摘要:ist<T>与ObservableCollection<T>的用法基本上是一样的。区别:list<T>:当T继承于INotifyPropertyChanged时,如果list<T>中的属性发生改变,则通知UI属性值已发生改变。但当list<T>添加一项时,list<T>就无法通知前端UI了(此时,ObservableCollection<T>闪亮登场)。ObservableCollection<T>:当ObservableCollection<T>添加一行时,会自动通知绑定该Observ
阅读全文
posted @
2011-04-08 11:31
暗月随风
阅读(1027)
推荐(0)
wpf 属性变更通知类的实现
摘要:View Code public class Student : INotifyPropertyChanged { private string studentID; public string StudentID { get { return studentID; } set { studentID = value; NotifyPropertyChange("StudentID"); } } private string studentName; public string StudentName { get { return studentName; } set {
阅读全文
posted @
2011-04-08 11:26
暗月随风
阅读(1205)
推荐(0)
wpf中防止界面卡死的写法
摘要:View Code this.button1.Content = "正在计算"; Action action = new Action(() => { System.Threading.Thread.Sleep(3000); this.Dispatcher.BeginInvoke(new Action(() => { this.button1.Content = "计算完毕"; }), System.Windows.Threading.DispatcherPriority.SystemIdle, null); }); action.Begin
阅读全文
posted @
2011-04-07 16:48
暗月随风
阅读(2637)
推荐(0)
写点东西,纪念一下
摘要:工作好几年了,还记得刚开始工作的时候,不会的东西很多,上网搜一些经验技巧,最激动的就是能在博客园上搜到相关的问题,但碍于个人的文笔问题,一直没有在博客园上发表过一篇和大家分享开发过程中经验和技巧的文章,个人感觉很不地道,不是我的作风。所以,从今天开始,我会在博客园的记录一些自己在工作中的点点。
阅读全文
posted @
2011-04-03 17:54
暗月随风
阅读(125)
推荐(0)