WPF学习:
1、Application的生命周期(外)
2、Window窗体的生命周期(内)
3、WPF基类(控件父类):
①DispatcherObject类:跨线程执行
②DependencyObject类:参与依赖属性系统的对象
③Visual类:派生每个FrameworkElement对象的基本抽象,提供支持包括命中测定、坐标转换和边界框计算
④UIElement类:
1、路由事件:
冒泡事件:从触发源为出发点,依次传递到父节点,直到最后的根节点
隧道事件:无论谁是触发源,都从根节点触发,到子节点,直到触发节点
2、依赖属性:
public Visibility Visibility{get;set;}
public static readonly DependencyProperty VisibilityProperty
补充:
Uid属性:获取或设置控件的唯一标识符,像人们的身份证一样。这个值默认是string.Empty。
Visible属性:获取或设置控件的可见性。默认是Visible。
ClIipToBounds属性:如果该值为true,表示进行裁剪,以适配它的父控件。比如有时候我们外面有一个Panel,里面的控件尺寸太大,势必会“撑破”外面的父控件,为了布局美观,只好削足适履
Clip属性:用于剪裁区域大小的几何图形。需要注意的是,这个属性和上面的ClipToBounds属性是有区别的。CIipToBounds是裁剪控件自身,CIip是裁剪控件里面的内容。
SnapsToDevicePixels属性:如果该值为true,表示控件的呈现是否应使用特定于设备的像素设置意思是开启后可以最大限度的防据齿效果,默认为false。
IsFocused属性:这是一个只读属性,表示当前控件是否有焦点。
IsEnabled属性:如果该值为true,表示禁用控件,反之启用控件。
IsHitTestVisible属性:获取或设置一个值,该值声明是否可以返回此元素作为其呈现内容的某些部分的点击测试结果。
IsVisible属性:这是一个只读属性,表示当前控件是否显示。
Focusable属性:如果该值为true,表示控件可以得到焦点,大部份内容控件都默认可以获得焦点。
IsKeyboardFocused属性:表示该控件是否具有键盘焦点。
IsMouseOver属性:表示鼠标是否在控件上面。通常在设计控件的样式(Style) 时会用到
IsStylusOver属性:表示触笔指针是否在控件的上方。
IsSealed属性:表示当前类型是否为只读类。
Opacity属性:设置控件的透明度,取值范围是0-1之间的double值
OpacityMask属性:设置一个画笔,作为控件的蒙板。比如我们给一张图片设置一个掩码,就可以使用lmageBrush这种图片画笔来实现。
AIlowDrop属性:示控件是否允许拖拽操作
RenderTransform属性:(非常重要)如果要设置控件的移动、缩放、旋转,需要这此属性进行设置
⑤FrameWorkElement
1.LayoutTransform属性:获取或设置在执行布局时应应用于此元素的图形转换。(旋转、缩放、倾斜、平移)
2.Width属性:这是表示控件的宽度。
3.Height属性:这是表示控件的高度,与之相关的还有以下几个属性。
4.Tag属性:这个属性非常重要,它是object类型,意味着可以保存任意类型的对象值。
5.Name属性:获取或设置控件的标识名称。
6.Margin属性:获取或设置控件的外边距。
7.水平对齐(水平Alignment属性):设置控件的水平对齐方式。
8.垂直对齐属性:设置控件的垂直对齐方式。
9.工具提示属性:获取或设置用户界面(UI)中为此元素显示的工具提示对象。
10.父属性:获取此元素的逻辑父元素。它是一个只读属性。
布局控件:(控件分为两种,即布局控件《书架》和内容控件《书本》)
布局控件有一个共性,它们之间有共同的Children属性,微软将它们抽象成Panel基类,并让这个基类继承于FrameworkElement类
Panel基类:
GetZIndex和SetZIndex方法成员,表示获取和设置某个元素的ZIndex顺序
Background:被背景设置一个颜色值,如果不希望有颜色,可以设置为Transparent。
Grid控件(网格布局)
Grid.RowDefintions:列定义
Grid.ColumnDefinitions:行定义
UniformGrid(均分布局):顾名思义,创建出来的网格均分屏幕(1*1 2*2 3*3)
ScrollViewer:滚动浏览
StackPanel:栈式布局
Orientation:竖直或水平布局
WrapPanel(瀑布流布局):内部内容随边框变化呈瀑布式变化,可调节变化方向
DockPanel(停好布局):当水平边被占据后,竖直方向的内容无法占据已被占据的部分,反之亦然
lastChildFill:最后一个元素是否填满,默认ture,可修改
Canvas(绝对布局):与边框的距离保持绝对,当图片超出边框时不会被裁剪
Border(边框布局):Border只能容纳一个元素,边框可以改为曲线
GridSplitter(分割窗口):用于窗口分割
TextWrapping:指定文本在到达包含框的边缘时是否换行。