WPF高级编程的内容简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF高级编程的内容简介相关的知识,希望对你有一定的参考价值。
参考技术A《WPF高级编程》主要介绍WPF开发技术、模式和案例。
《WPF高级编程》以“WPF概述”作为开始。在第1章中,首先回答了“WPF是什么?”、“如何开始使用WPF?”以及“WPF能够带来什么?”等几个问题,然后详细分析了WPF开发平台提供的各个子系统及其图形特征。
概述WPF之后,将进入WPF开发技术部分。《WPF高级编程》通过使用Visual Studio创建几个示例程序,带领您快速进入应用程序开发。此外,还将介绍XAML—— 创建用户界面的新标记语言。XAML实际上是独立于WPF的一项技术,但在WPF中广泛使用了XAML。
掌握了WPF的基本概念和开发技术之后,《WPF高级编程》将带领读者进入设计工具的世界。Microsoft提供了许多引人注目的新的设计工具系列。在《WPF高级编程》中将学习使用新的Microsoft Expression Blend工具。通过使用Expression Blend,可以创建高级的用户界面,学习实现样式、布局与动画。读者还将发现,将界面设计保存到XAML文件中,然后在Visual Studio中使用完全相同的标记语言编写应用程序逻辑是多么的容易。
接下来,将介绍如何使用WPF创建特殊效果,包括位图效果、变换,以及使用画刷对象创建玻璃或反射效果等。《WPF高级编程》演示了这些技术,并为在应用程序中创建绚丽的可视化元素提供了基础。
在学习完特殊效果之后,将介绍如何使用WPF创建自定义控件。WPF提供了一个极好的自定义对象模型,允许运用各种风格和已存在的各种元素模板。该模型是一个令人满意的新模型,允许将几乎任何元素放置在另一个元素中。通过这个新功能,在整个创建自定义控件的过程中,都不会遇到问题。当然,任何事物都不是绝对的,使用WPF创建自定义控件,也有可能会遇到一些问题。本部分内容包括在什么情况下需要考虑创建自定义控件,以及如何创建自定义控件。
接下来,将进入WPF应用程序的企业应用开发部分。使用WPF可以创建两种风格的应用程序:基于Windows的单机运行的应用程序与基于Web的应用程序。这两种类型的程序基于相同的代码,即XAML与.NET。这意味着为应用程序指定目标主机环境,只需要简单改变工程文件的设置并管理这些配置即可。这项功能是非常强大的,在《WPF高级编程》的企业开发主题中,对这一功能进行了全面介绍。
在理解了应用程序模型与配置之后,读者可能想了解安全问题。WPF的安全基于.NET 2.0的CAS安全模型,与所选择的应用程序模型以及运行环境也有关。如果WPF程序运行于浏览器中,将涉及到Internet区域安全设置。《WPF高级编程》将深入介绍这些内容。
在探讨了WPF应用程序开发、配置基础,并全面分析了WPF应用程序的安全之后,《WPF高级编程》将进入一些高级主题。这些高级主题之一就是如何混合使用Win32与WPF代码。《WPF高级编程》中将涉及互操作的相关问题。在Win32程序中使用WPF以及在WPF程序中使用Win32都是可行的,《WPF高级编程》将介绍如何实现这一特征,从而可以使读者快速掌握如何将WPF用于Win32程序中。
《WPF高级编程》最后深入研究了体系结构、WPF架构、XAML以及多线程问题。此外,还介绍了Windows Workflow Foundation(WF)与Windows Communication Foundation(WCF),从而使读者可以熟悉.NET Framework 3.0的其他组件。在理解了这些重要组件之后,读者还将学习如何构建一个简单的WCF服务与一个简单的WF工作流应用程序。
WPF 高级篇 MVVM 附加属性
原文:WPF 高级篇 MVVM 附加属性
WPF 特性之一 附加属性 在本文里实现文本框内容的验证
- public class TextBoxHelper:DependencyObject
- {
-
- public static bool GetisOnlyNumber(DependencyObject obj)
- {
- return (bool)obj.GetValue(isOnlyNumberProperty);
- }
-
- public static void SetisOnlyNumber(DependencyObject obj, bool value)
- {
- obj.SetValue(isOnlyNumberProperty, value);
- }
-
- // Using a DependencyProperty as the backing store for isOnlyNumber. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty isOnlyNumberProperty =
- DependencyProperty.RegisterAttached("isOnlyNumber", typeof(bool), typeof(TextBoxHelper), new PropertyMetadata(false,OnIsOnlyNumberChange));
-
- private static void OnIsOnlyNumberChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- var text = d as TextBox;
- if ((bool)e.NewValue)
- {
- text.PreviewTextInput += text_PreviewTextInput;
- }else{
- text.PreviewTextInput -= text_PreviewTextInput;
- }
- }
-
- static void text_PreviewTextInput(object sender, System.Windows.Input.TextCompositionEventArgs e)
- {
- e.Handled = IsNotNumber(e.Text);
- }
-
- private static bool IsNotNumber(string content)
- {
- Regex regex = new Regex("[^0-9]");
- return regex.IsMatch(content);
- }
-
-
- }
引用命名空间
xmlns:bhx ="clr-namespace:WPF.Behaviors"
<TextBox bhx:TextBoxHelper.isOnlyNumber="True" HorizontalAlignment="Left" Height="23" Margin="10,131,0,0" TextWrapping="Wrap" Text="{Binding CurrentBook.Pages}" VerticalAlignment="Top" Width="120"/>
以上是关于WPF高级编程的内容简介的主要内容,如果未能解决你的问题,请参考以下文章