随笔分类 - WPF开发技术
挺好玩的....
摘要:释义 BindingBase.StringFormat 属性 获取或设置一个字符串,该字符串指定如果绑定值显示为字符串,应如何设置该绑定的格式。 命名空间: System.Windows.Data 程序集: PresentationFramework(在 PresentationFramework.dll 中) 用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation Strin...
阅读全文
摘要:序言 借助WPF/Sliverlight强大的数据绑定功能,可以比实现比MFC,WinForm更加优雅轻松的数据绑定。但是在使用WPF/Silverlight绑定时,有件事情是很苦恼的:当ViewModel对象放生改变,需要通知UI。我们可以让VM对象实现INotifyPropertyChanged接口,通过事件来通知UI。但问题就出现这里……一,描述问题 情形:现在需要将一个Person对象的Name熟悉双向绑定到UI中的TextBox,的确这是一件很简单的事情,但还是描述下: XAML:<TextBox Text="{Binding Name,Mode=TwoWay}&qu
阅读全文
摘要:由于ComboBox,ListBox等控件没有实现ICommandSource接口,所以不支持在XAML中进行Command绑定,下面的一段代码就是,对ComboBox实现对ICommandSource接口的实现:public class ComboBoxWithCommand : ComboBox, ICommandSource{ private static EventHandler canExecuteChangedHandler; public static readonly DependencyProperty CommandProperty = DependencyPr...
阅读全文
摘要:F#与WPF 实现MVVM之二作者:墨梅时间:2012年7月23日在上一篇中,初步介绍了:使用F#采用多语言方式,实现MVVM的WPF程序。在这篇中,我将继续这个主题,多语言方式实现MVVM:View采用C#+XAML实现(因为VS中对C#的具有很好的很优秀的支持,F#这方面还是很匮乏的),ViewModel层和Model层使用F#实现,据说可以使代码量减到原来的四分之一哦。这个示例主要是:计算一个员工的工资:一个人的工资= 工作时间(月) × 月工资 + 福利当工作时间(月)、月工资、福利中任意一个发生改变的时候,自动计算一个人的工资。当然,在这些元素改变时,计算工资之前,需要对这
阅读全文
摘要:下面主要介绍如何使用多语言方法实现WPF的MVVM设计模式。我计划分为三篇来介绍多语言方法实现MVVM模式,这是第一篇。 对Visual Studio家族而言,F#是个新成员,但是它的简洁深深地吸引了我。F#在简化并行和异步编程、数据处理和金融建模等复杂问题声誉卓越,而且越来越受欢迎。F#构建MVVM应用程序有两种常用的方法,一种是全F#语言方法,另一种是多语言方法,即用C# + Xaml构建View层,F#负责ViewMode 和Mode层。对于第一种,使用VS的扩展模板很容易办到。我这里只说第二种方法,当然这种方法也是F#团队推荐的方法。其次,C#中针对WPF和Silverlight...
阅读全文
摘要:现在用一种不同的方式,使用F#创建WPF窗体程序。 首先,使用F#的模板创建一个F#的控制台程序: 然后添加以下引用: 添加相应的命名空间: open System open System.Windowsopen System.Windows.Controls 声明一个TextBox控件,并设置Text为“Hello world!”,并将该控件作为窗体的Content,并设置窗体的Title为“Hello world”[<EntryPoint;STAThread>]let Main args = let tb = TextBox(Text="He...
阅读全文
摘要:由于需要,做了一个WPF的无边框的自定义的Button,代码如下: 运行效果如下:常态:当鼠标经过时的状态:在这个基础上,您可以做出更多的效果(仿照这个是360软件管家右边栏实现的效果)如:我自己已经实现了这个种效果,只是加了一点C#后台代码,辅助控制动画的,你自己可以尝试下,挺好玩的哦。。。呵呵下面是实现效果的代码:View Code <Style x:Key="MainButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
阅读全文
摘要:由于WPF中没有鼠标的双击事件,因而只能通过MouseDown事件来模拟。当连续的两次MouseDown事件的时间间隔,没有超过一个设定的时间阈值时,就计算为一个双击事件,并作相应的处理。利用WPF中System.Windows.Threading.DispatcherTimer来做定时处理,不建议使用System.Timers.Timer。当定时事件发生时,就重置计数器为0,定时,单击事件中对计数器加1,并计数器是否为2的整数倍(即是否在设定的时间间隔内,发生两次MouseDown 事件)。如果是则作为双击事件处理。int i = 0;private void Grid_MainTitle_
阅读全文