WPF点滴(3) 行为-Behavior】的更多相关文章

最近有同事问道在应用程序启动之后,再次双击应用程序,如何保证不再启动新的应用程序,而是弹出之前已经启动的进程,本质上这就是创建一个单实例的WPF应用程序.在VS的工程树中有一个App.xaml和App.xaml.cs(这两个文件都是VS自动生成的),在App.xaml.cs中定义了App类,该类继承自System.Windows.Application,从类的命名上也很容易看出这些类是跟应用程序的管理相关的,在讲创建单实例应用程序之前,我们先了解一下Application这个类. 在上一篇WPF…
为了定制个性化的用户界面,我们通常会借助于WPF强大的样式(style),修改控件属性,重写控件模板(template),样式帮助我们构建一致的个性化控件.通过样式可以调整界面的显示效果,这只是界面构成的一部分,界面有很多功能是与程序功能无关的,比如停靠.拖动.缩放等,这些通用的功能要如何实现呢,所有用到的地方都单独实现肯定是不现实的,行为(behavior)这时就可以大展拳脚了. 什么是行为,行为是为控件封装好的功能.你可以为Image控件封装缩放行为,或者为所有控件(UIElement)封装…
1 设置窗体的最大化,而且无边框 <Style x:Key="WindowsStyle" TargetType="Window"> <Setter Property="Height" Value="1024"></Setter> <Setter Property="Width" Value="1280"></Setter> &l…
一.使用Attached Dependency Property的方式 (1)定义Attached Dependency Property public static class DigitsOnlyBehavior { public static bool GetIsDigitOnly(DependencyObject obj) { return (bool)obj.GetValue(IsDigitOnlyProperty); } public static void SetIsDigitOn…
应用程序的入口函数是main函数,在Console程序和Winform程序main函数都有清晰的定义,可以很容易找到,但是WPF的工程文件中却找不到main函数的定义,是WPF不需要main函数吗?NO! NO! NO! 不要太天真了,WPF是有main函数的,VS帮我们自动生成了,在obj\Debug\App.g.cs文件中可以看到以下的定义(obj\Debug文件夹下还有一个叫App.g.i.cs的文件,文件内容与App.g.cs一致,这个文件也是自动生成的,是为了VS的intelligen…
本文主要是以实现拖动元素作为例子. 创建Behavior: 通常这个类会继承自Behavior<T>,其中T就是此Behavior服务的对象,在此处使用的是UIElement,也就是虽有的UIElement类型的元素都可以使用. public class DragInCanvasBehavior : Behavior<UIElement> { //元素父节点 private Canvas canvas; //标识是否进入拖动 private bool isDraging = fal…
Hello,Behavior   引言         在看PDC-09大会的视频时,其中一篇讲利用Blend来扩展Silverlight元素的行 为,当时感觉很酷:在Blend中,将MouseDragElementBehavior拖到任意一个元素上,这个元 素就可以被随意拖动. 因为之前在Silverlight SDK中好像没有看到相关的介绍,事实如此, Microsoft.Expression.Interactions和System.Windows.Interactivity程序集在Blen…
WPF引用xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"后可以设置很多自定义的行为: <i:Interaction.Triggers> <i:EventTrigger EventName="ValueChanged"> <i:InvokeCommandAction Command="{Bindi…
在WPF 4.0中,引入了一个比较实用的库——Interactions,这个库主要是通过附加属性来对UI控件注入一些新的功能,除了内置了一系列比较好用的功能外,还提供了比较良好的扩展接口.本文这里简单的介绍一下Behavior这个扩展. 顾名思义,Behavior可以赋予控件新的行为能力,例如,我们可以通过MouseDragElementBehavior给控件附加上支持拖放的能力.使用方式如下: 添加Interactions库的引用.主要添加如下两个DLL:Microsoft.Expressio…
在使用WPF编写客户端代码时,我们会在VM下解耦业务逻辑,而剩下与功能无关的内容比如动画.视觉效果,布局切换等等在数量和复杂性上都超过了业务代码.而如何更好的简化这些编码,WPF设计人员使用了Style和Behavior来帮助我们构建一致性.组织性好的代码. 这一章的目的是理解我们使用行为和资源的目标.使用这2个内容使我们创建封装一些通用用户界面功能的行为.比如启动故事板,加入重力的动画效果,我们要把思维给打开,我们做的东西是为了通用,而不是为了业务,因为业务在这个时刻只存在于VM中.(即使个人…