2022-08-29 23:03:02
摘要:一、概述
1. 个性化处理的方式
控件模板
UserControl 用户控件
CustomControl 自定义控件
2. UserControl与CustomControl
开发方式与表现结构
CustomControl 模板与关键特性
区别:
1、自定义控件:注重控件对象的功能,必须遵守WPF的控件规则
完全自己实现一个控件 继承现有控件进行功能扩展,并且添加新功能 WPF的控件要求
后台代码(控制逻辑)和Generic.Xaml(样式 模板)进行组合
支持模板重写
继承Control
2、用户控件:注重复合控件组合使用,非常灵活,可以根据控件开发人员自己的意愿进行功能处理
多个现有控件的集合,组成一个可复用的控件组
XAML和后台代码组成 绑定非常紧密
不支持模板重写、样式
继承UserControl
二、日期时间选择器
UserControl x:Class=Zhaoxi.CustomLesson.Controls.DateTimePicker
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006
xmlns:d=http://schemas.microsoft.com/expression/blend/2008
xmlns:local=clr-namespace:Controls
mc:Ignorable=d
d:DesignHeight=30 d:DesignWidth=200
UserControl.Resources
Style TargetType=RepeatButton x:Key=ButtonUpStyle
Setter Property=Height Value=18……
阅读全文
2022-08-28 22:25:34
摘要:一、动画
补间动画:动画本质就是在一个时间段内对象尺寸、位移、旋转角度、缩放、颜色、透明度等属性值的连续变化。也包括图形变形的属性。时间、变化的对象、变化的值
工业应用场景:蚂蚁线、旋转、高度变化、指针偏移、小车 起始-》结束 多长时间
使用要求
必须针对依赖属性
对象必须派生自DependencyObject,并且实现IAnimatable接口
必须存在可用的兼容动画类(支持自定义)
二、简单线性动画
1. 类型
类型
ByteAnimation
ColorAnimation
DecimalAnimation
DoubleAnimation
Int16Animation
Int32Animation
Int64Animation
Point3DAnimation
PointAnimation
QuaternionAnimation
RectAnimation
Rotation3DAnimation
SingleAnimation
SizeAnimation
ThicknessAnimation
VectorAnimation
Vector3DAnimation
2. 动画类的选择
根据属性类型确定
变个大小、变个位置、变个颜色、变个显示(显示与隐藏)
3. 基本使用
创建类对象,设置相关属性,动画的执行
Duration、From、To
动画的独立控制与整合
StoryBoard
控制动画的运行:开始,停止,暂停,恢复
动画与对象的桥梁:动画对象与页面对象的关联
MediaElement
4. 实操
Window x:Class=AnimationLesson.LinearAniamtionWindow
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
xmlns:d=http://schemas.microsoft.com/expression/blend/2008
xmlns:mc=http://schemas.openxmlf……
阅读全文
2022-08-22 16:39:57
摘要:
Button、Label、GroupBox、CheckBox、RadioButton、ToggleButton
TextBox、PasswordBox、TabControl/TabItem、TreeView/TreeViewItem、ListBox/ListBoxItem、Menu/MenuItem
ComboBox、ScrollViewer/ScrollBar、ProgressBar、Slider
Calendar、DatePicker、ListView、DataGrid
1. Button
Window x:Class=TemplateLesson.BtnWindow
xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
xmlns:d=http://schemas.microsoft.com/expression/blend/2008
xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006
xmlns:local=clr-namespace:TemplateLesson
mc:Ignorable=d
Title=BtnWindow Height=450 Width=800
Window.Resources
Style x:Key=ButtonStyle1 TargetType={x:Type Button}
Setter Property=Background Value=#FFDDDDDD/
Setter Property=BorderBrush Value=#FF707070/
Setter Property=Foreground Value={DynamicResource {x:Static SystemColors.ControlTextBrushKey}}/
……
阅读全文
2022-08-21 10:24:56
摘要:一、理解XAML
1. 项目表现形式
项目结构:项目文件,对象文件(XAML + C#)
XAML
eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言
XML:Extensible Markup Language
标记定义
命名空间
默认
映射:x(XAML语言本身所需的类型和属性)/d(代表设计时相关的工具对象)/mc(标记兼容功能)
x:Array x:Key x:Name x:Null x:Static x:Share x:Type
2. 视觉树与逻辑树
查看分析工具:Snoop
层级关系
逻辑开发
视觉呈现
3. 标签扩展
自定义标签/对象
继承相关基类
命名空间引入
4. 类型转换器
XAML字符串编辑
对象属性非字符类型转换
二、WPF基础控件
控件类型
主要控件
按钮控件
Button、RepeatButton、RadioButton
数据显示控件
TextBlock、Label、Image、ItemsControl、ListView、ListBox、DataGrid、DocumentViwer
输入控件
TextBox、RichTextBox、CheckBox、ComboBox、DatePicker、PasswordBox、Slider、ProgressBar
菜单导航控件
MenuItem、ContextMenu、ToolBar、TreeView、TabControl、Expander
信息提示控件
Popup、Window、PrintDialog、ToolTip
布局控件
Grid、StackPanel、WrapPanel、DockPanel、UniformGrid、Canvas、InkCanvas、Border
图形控件
Line、Rectangle、Ellipse、Polyline、Polygon、Path、3D
容器控件
ScrollViwer、GroupBox、ViewBox
1. 常用属性
尺寸(宽高)
定位(Margin,HorizontalAlignment、VerticalAlignment)
颜色(Background、Foreground)
信息显示(Te……
阅读全文