《深入浅出WPF》读书笔记

XAML
控件
Binding (Path, Source)
属性(依赖属性)
事件(路由事件)
命令(命令4要素)
资源(Resources属性+resx)
模板(DataTemplate + ControlTemplate)
绘图 (Path)
动画 (DoubleAnimation)

核心:WPF – 数据驱动
XAML
XAML派生于XML
命名空间定义: xmlns[:可选的映射前缀]=“名称空间”。没有命名前缀的名称空间称为默认名称空间。默认名称空间有且只有一个。
xmlns:n= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" –对应的是与绘制UI相关的程序集
xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"—对应XAML语言解析处理相关的程序集,用来引导XAML编译器把XAML代码编译成CLR代码。
XAML解析成的类和后置代码中的类都使用partial,所以两个类会合二为一。
XAML注释: <!—XXXX -->
XAML为对象属性赋值的两种方法:
1. Attribute =”value”, 比如 Height=”200”
2. 使用属性元素进行复杂赋值
<Rectangle.Fill>
    <SolidColorBrush Color=”Blue”/>
</Rectangle.Fill>
标记扩展:Attribute = “{XXX}”
紧邻左花括号的是要赋给Attribute的对象,其后是该对象的属性。
比如:Text=”{Binding ElementName=slider1, Path=Value, Mode=OneWay}”
事件属性: Click=”button1_Click” ---编译器会在后置代码中自动生成该处理函数
代码后置:在XAML里面设定UI,指定事件处理函数,在C#里面实现事件处理逻辑。
代码后置文件一般为~.xaml.cs


XAML中引用程序集
1. 把类库引用到项目中
2. 在XAML中引用名称空间:
Xmlns:映射名=“clr-namespace:类库中名称空间的名字;assembly=类库文件名”(XAML编译器会有提示)
3. 使用该命名空间中的类:
<映射名:类名>…</映射名:类名>
xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
x命名空间中包含的类均与解析XAML语言相关
x:Class告诉XAML编译器将XAML内容与后置代码中指定的类合并
x:ClassModifier设定标签生成类的访问控制级别- internal, private, protected and public
x:Name为对象生成一个引用变量,该变量能在后置代码里面使用。如果该对象有Name属性,则会把值设定过去。
X:FieldModifier改变引用变量的访问级别(必须与x:Name合用)。WPF里面成员变量默认是internal, C#里面默认是private.
X:Key为Resources贴上用于检索的标签索引。然后在XAML或后置代码中可以使用该Key定义的资源。
 XAML:
  <Window.Resources>
      <sys:String x:Key=”mystring”>Hello World!</sys:String>
</Window.Resources>
  <TextBox Text=”{StaticResoure ResourceKey=mystring}”/>

Code:
  String str = this.FindResource(“mystring” ) as string;

注:
1. XAML中使用String类 需要 xmlns:sys=”clr-namespace:System;assembly=mscorlib” 引用mscorlib.dll
2. 引用本程序集名称空间需要 xmlns:local=”clr-namespace:XXX”
x:Shared 需要与x:Key合用, x:Shared为true, 则每次检索到这个对象时,得到的都是同一个对象;为false,则每次检索到这个对象时,得到的都是这个对象的一个新副本。默认为true.
x:Type 标记扩展, 代表一个数据类型,也就是在后置代码中用Type定义一个变量,在XAML中用标记扩展指定Type类型。
x:Null 标记扩展,XAML里表示空值的是x:Null,可以为一个属性赋空值,主要是用于Style.
x:Array标记扩展,通过它的Items属性向使用者暴露一个类型已知的ArrayList实例。ArrayList内成员的类型由x:Array的Type指明。
x:Static标记扩展,可以在XAML里面使用后置代码中的static属性字段。
X:Code作用是可以包含一些本应该放置在后置代码中的c#代码。不要这么用。


控件与布局
WPF的UI是树形结构。
Logic Tree: 宏观的,由控件组成的树。
Visual Tree: 微观的,包含控件本身的微观树在内的树。
ContentControl族:
 


HeaderedContentControl族:
 
 
ItemsControl族:
 
 
WPF布

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值