摘要: 在WPF中,Sytle是一个非常重要的东西,它是一种对属性值的处理,其中Trigger(触发器)则是在属性值的处理中加上条件。 WPF定义了五种Trigger来作为触发条件,分别是:Trigger,DataTrigger,MultiTrigger,MultiDataTrigger,EventTrigger。 下面最简单的一个Trigger是这样写的: View Code <Style TargetType="Button" x:Key="buttonStyle"> <Style.Triggers> <Trigger Prop 阅读全文
posted @ 2013-01-17 23:59 世界很灰暗 阅读(487) 评论(1) 推荐(0) 编辑
摘要: 首先是定义,MSDN上是这样写的:确定可以如何使用自定义属性类。AttributeUsage是一个可应用于自定义属性定义的属性,自定义属性定义来控制如何应用新属性。 它可以通过标记的方式来修饰各种成员。下面有一个简单的例子:View Code class Program { static void Main(string[] args) { Type t=typeof(Test); var student=t.GetCustomAttributes(typeof(StudentAttribute),false); ... 阅读全文
posted @ 2012-11-07 17:17 世界很灰暗 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: 网上有TextBox的垂直居中,只需要设置他的Sytle让他有个宿主就可以了,但是因为Label的换行需要用到TextBlock的TextWrapping="Wrap"来换行,但是TextBlock貌似是不能设置他的Sytle的。所以Label也就不能像TextBox一样的直接写Sytle来让他垂直居中。 因此只能换个角度去考虑,用一个CustomControl,设置一个Text的依赖属性,让他绑定TextBox,当TextChanged的时候遇到回车就把字符串split分成两段加入List中,把ItemsControl的ItemsSource绑定到List,然后把Item 阅读全文
posted @ 2012-11-02 16:55 世界很灰暗 阅读(5799) 评论(0) 推荐(0) 编辑
摘要: 首先需要去下载Newtonsoft.Json.dll这个东西,这个是一个很好的功能很强大的dll。可以用TOOLS中的Libary Package Manager中的Package Manager Console输入Install-Package Newtonsoft.Json来直接下载。装完后就可以添加引用:using Newtonsoft.Json;using Newtonsoft.Json.Converters; 然后是一个最简单的字符串的系列化反序列化应用:View Code class Program { static void Main(string[] arg... 阅读全文
posted @ 2012-10-28 23:31 世界很灰暗 阅读(687) 评论(3) 推荐(0) 编辑
摘要: 制作WPF的阴影效果可以有很多种,貌似后来性能不好,然后被微软给X掉了。现在只有几个是可以用的,先暂时学习下现在有的,等以后看看用什么来代替原来的那些效果。1.首先最常见的一个阴影效果的类是DropShadowEffect。它有几种比较有用的属性比如:Color设置颜色,Direction设置投影的方向,ShadowDepth设置投影距纹理下方的距离,Opacity设置透明度等等。角度的设置是这样的:下面是一个例子和效果:View Code <TextBlock Text="Shadow Test" Foreground="Green" Horiz 阅读全文
posted @ 2012-10-22 19:08 世界很灰暗 阅读(8150) 评论(4) 推荐(5) 编辑
摘要: 首先一个ListBox中,创建两个控制ItemsSource的类,可以动态的添加所需要的属性及内容。View Code public class Display { public double Width { get; set; } public double Height { get; set; } public string Content { get; set; } public Type PageTemplate { get; set; } public Display() { } public D... 阅读全文
posted @ 2012-10-21 22:20 世界很灰暗 阅读(1000) 评论(0) 推荐(2) 编辑
摘要: 在WPF中有许多时候绑定到同一个对象上,因此就有一个隐式的数据源DataContext,有时把一个父控件直接设置成DataContext,当一个控件没有显示源对象时,WPF会遍历整个逻辑树,找到一个非空的Datacontext属性绑定上去。 还有在一些情况下可以通过Tag来绑定一些东西,也可以把一些属性绑定到Tag上面去。下面有一个最简单的例子我把Context和Tag都写在了里面:View Code <Window.Resources> <SolidColorBrush x:Key="myBrush" Color="Gold" /&g 阅读全文
posted @ 2012-10-21 02:05 世界很灰暗 阅读(3625) 评论(0) 推荐(0) 编辑
摘要: 首先,最基本的还是先要知道MEF是撒,他是干嘛用的:http://msdn.microsoft.com/zh-cn/magazine/ee291628.aspx(1)MEF:全称Managed Extensibility Framework(托管可扩展框架)。(2)MSDN上说明:Managed Extensibility Framework 或 MEF 是一个用于创建可扩展的轻型应用程序的库。 应用程序开发人员可利用该库发现并使用扩展,而无需进行配置。 扩展开发人员还可以利用该库轻松地封装代码,避免生成脆弱的硬依赖项。 通过 MEF,不仅可以在应用程序内重用扩展,还可以在应用程序之间重用扩展 阅读全文
posted @ 2012-10-16 14:17 世界很灰暗 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 因为需要做个类似的东西,在版面的移动以及布局上需要学习的东西还是很多的。普通的Panel已经不能满足我的需求了,所以需要重新来自定义一个Panel来放入ListBox中,我做了一个DEMO,首先弄一个ListBox,把他的Template、ItemSource、Detetemplate等东西都先设置一下,这个我以前都写过学习过了,然后建一个类,这个类我们用来滑动以及设计模板,首先设置它的MeasureOverride和ArrangeOverride,这两个方法是WPF的Layout系统提供给用户的自定义接口,一个是测量范围给出所需要的范围,一个是安排Child的位置。这个玩意还是比较搞的,.. 阅读全文
posted @ 2012-10-09 20:11 世界很灰暗 阅读(3201) 评论(2) 推荐(0) 编辑
摘要: 在我上一个BLOG中写到了滑动时不会触发ListBoxItem,同样接着上一个例子,我如果需要做一个分页滑动的效果的话,首先要有滑动的效果,我觉得如果是分页的话,那一个页面中肯定是固定Item数目,然后在Canvas中放入3个一样的ListBox分别把Canvas.left设置为你的窗口大小左右都放一个,中间放一个=-= 然后根据上个例子一样往左拉都触发动画效果让中间和右边的Lis-tBox同时往左移动,最后再把动画还原就可以了。这样就可以实现拖动效果,然后Item里面的数据的话只要每次滑动的时候在中间的那个ListBox中变化就可以了(这个东西下次再写)。动画的实现的话代码如下:View.. 阅读全文
posted @ 2012-09-19 21:34 世界很灰暗 阅读(4200) 评论(0) 推荐(0) 编辑