07 2012 档案
摘要:最近3周忙于学习Prism,留下些学习笔记.....最终发现,还是必须得,亲自仔细阅读官方指导,一种不错的学习方式。要点1: 在CAL中,模块是实现Imodule接口的类,此接口仅包含一个方法,称为Initializae。如果把引导程序看做应用程序的Main方法,那么Initialize方法就是每个模块的Main方法。要点2: 对于Module中的Initialize方法中,提到的_contianer 和 _regionManager的作用需讨论一下。如果接口并未定义他们,那么他们从何而来?我们是否需要将逻辑硬编码到模块中以找出这些依赖关系?幸运的是,后一个问题的答案是“否”,此时,IoC容器
阅读全文
摘要:由于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...
阅读全文
摘要:责任链模式(在F#中的实现:) 以下示例代码:确保人的年龄在18到65之间,体重不超过200,身高大于120 type Record = { Name : string; Age : int; Weight: float; Height: float;} let ChainOfResponsibility() = let validAge (record:Record) = record.Age < 65 && record.Age > 18 let validWeight (record:Record) = ...
阅读全文
摘要:F# WPF Form – the basicsI was listening to Dot Net Rocks show#560about F# and during the podcast Richard Campbell brought up a good point with regards to F# and a GUI. In essence what I understood his point to be was that until one could write an end to end application in F#, it would be a hard sell
阅读全文
摘要:由于需要,做了一个WPF的无边框的自定义的Button,代码如下: 运行效果如下:常态:当鼠标经过时的状态:在这个基础上,您可以做出更多的效果(仿照这个是360软件管家右边栏实现的效果)如:我自己已经实现了这个种效果,只是加了一点C#后台代码,辅助控制动画的,你自己可以尝试下,挺好玩的哦。。。呵呵下面是实现效果的代码:View Code <Style x:Key="MainButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseButtonStyle}">
阅读全文
摘要:Bingmap for WPF control 没有直接提供中国地图,但是通过必应地图(中国)知道,时存在必应中国地图,经过一番百度后,找到解决办法。通过添加新的地图图层来解决问题,用新的图层覆盖原有的地图,新图层中显示中国地图。不说了,代码解决大部分问题(代码如下): //其中map为必应地图for WPF 控件MapTileLayertileLayer; private void AddTileOverlay() { // Create a new map layer to add the tile overlay to. tileLayer = new MapTileLayer(); /
阅读全文
摘要:WPF当窗体WindowStyle=”None”时,最大化会覆盖掉任务栏。如何解决这个问题呢?我在Google里面搜到一篇文章,要用到Win32 API,通过让WPF窗体WM_GETMINMAXINFO消息挂接一个钩子来处理。publicstaticvoidRepairWindowBehavior(Window wpfWindow){if(wpfWindow ==null)return;wpfWindow.SourceInitialized +=delegate{IntPtr handle = (newWindowInteropHelper(wpfWindow)).Handle;HwndSou
阅读全文