摘要: # 数据模板 ## 介绍 数据模板类似于控件模板的概念。他给你非常灵活和强有力的比如在ListBox、ComboBox或ListView中替换数据项的可视化外观的解决方案。在我看来,这是WPF成功的关键之一。 如果你没有详细指定一个数据模板,WPF使用仅有一个TextBlock的默认模板。如果你绑定 阅读全文
posted @ 2023-09-01 09:38 Juston007 阅读(66) 评论(0) 推荐(0)
摘要: # 控件模板 ## 介绍 WPF中的控件分隔逻辑,定义状态、事件、属性和模板。模板即是定义控件的可视化外观。逻辑和模板之间的联系是通过数据绑定完成的。 每个控件都有一个模板模板。给控件一个基础外观。默认模板通常与控件一起提供,并且它对于所有普通Windows主题都可用。传统的,其被样式包装,该样式由 阅读全文
posted @ 2023-09-01 09:37 Juston007 阅读(34) 评论(0) 推荐(0)
摘要: # 设计时&运行时 ## 介绍 一个应用程序经常在运行时看起来很棒,但是当你在设计器打开时(像是VS或者Blend)体验就十分不同。原因是设计时: * 用户控件没有嵌入到父视图中 宽度和高度没有被设置 * 根元素的构造函数没有被调用 根元素被设计器替换 ViewModel没有被创建 * 控件行为差别 阅读全文
posted @ 2023-08-30 11:29 Juston007 阅读(58) 评论(0) 推荐(0)
摘要: # WPF中的样式 ## 介绍 想象一下,你想要创建一个具有独特设计的应用程序。所有的按钮都应该有橙色背景和Italic字体。按照传统的方式完成这些意味着你必须为每个按钮设置Backgroun和FontStyle属性。 ``` Styles are cool ``` 这段代码既不可维护,也不简短明了 阅读全文
posted @ 2023-08-29 17:28 Juston007 阅读(15) 评论(0) 推荐(0)
摘要: # WPF中的主题 ## 介绍 ## 如何使用在WPF应用中使用具体的Windows主题 WPF包含所有的公共的Windows主题。WPF默认加载当前你设置的默认样式集合Windows主题。但是你可以通过加载具体的主题覆盖这些样式。如果要这么做,首先你必须添加引用到你想要使用的样式程序集,其次你必须 阅读全文
posted @ 2023-08-29 17:27 Juston007 阅读(16) 评论(0) 推荐(0)
摘要: # 实现一个可重用的命令 ## 介绍 如果你正在使用MVVM设计模式,最常使用的机制之一是绑定行为(命令)到视图。为了提供一个命令,你必须实现ICommand接口。这很简单,但是你必须一遍又一遍地做,这很麻烦。 这个设计模式的思想史构建一个通用的命令,该命令接受两个委托。一个当ICommand.Ex 阅读全文
posted @ 2023-08-28 16:12 Juston007 阅读(14) 评论(0) 推荐(0)
摘要: # 大型WPF项目的参考结构 ## 介绍 选择恰当的结构对于软件项目的成功是非常重要的。如果你的体系结构具有不好的性能,当应用程序加载时用户会有不好的体验。此外,它的健壮性,可维护性或者可测试行也是非常重要的。 WPF提供了强有力的数据绑定框架。如果我们通过使用MVVM设计模式来利用这一点,通过使用 阅读全文
posted @ 2023-08-28 15:49 Juston007 阅读(195) 评论(0) 推荐(0)
摘要: # MVVM ## MVVM设计模式为何更便捷 WPF具有强大的数据绑定特性,提供了更简单的单向双向属性同步。你可以直接地把两个WPF元素绑定到一起,但是数据绑定更通用用法是绑定某种数据到View上。这是通过DataContext属性完成。因为DataContext属性被标记为继承,它可以设置在视图 阅读全文
posted @ 2023-08-24 14:50 Juston007 阅读(61) 评论(0) 推荐(0)
摘要: # 如何绑定枚举值 你不能够直接地绑定枚举的值到一个列表控件,因为枚举类型不提供一个属性返回所有值。只有一个方法获取所有名字通过调用GetNames方法。但是如何在XAML中调用一个方法? 诀窍是使用ObjectDataProvider(对象内容提供者),允许你指定一个方法和它的参数,并从XAML中 阅读全文
posted @ 2023-08-21 08:43 Juston007 阅读(18) 评论(0) 推荐(0)
摘要: # 一种优雅的方式实现属性改变通知 在WPF中一种非常通用和流行的方式在实体和视图之间同步数据是使用数据绑定。当绑定初始化时,实体的值被一次性地传输到视图。但是每次随后地改变,视图必须通知绑定再次传输值。通过在实体内实现INofityPropertyChanged接口实现。 在每个绑定属性的Set访 阅读全文
posted @ 2023-08-18 17:30 Juston007 阅读(54) 评论(0) 推荐(0)