wpf笔记(读一线码农8天入门wpf)
2021-02-14 04:19
wpf笔记(读一线码农8天入门wpf)
****************基础****************
●引入命名空间 xmlns:local="clr-namespace:DataTemplate"
●StaticResource静态资源相当于常量,编译后值不改变 {StaticResource ResourceKey=mystyle}
●DynamicResource动态资源相当于变量,编译后值可改变 {DynamicResource ResourceKey=mystyle}
●Binding绑定 Text="{Binding ElementName=textBox1, Path=Text}"
●TemplateBinding模板绑定
****************样式Style****************
样式主要对外观缝缝补补,改个颜色,字体大小等
●Style类似css
●TargetType定义一类控件的外观
****************模板Template****************
模板重新定义控件的外观,颠覆原外观(当然还可以继承)
●ControlTemplate模板控制控件外观
●ContentPresenter继承控件原模板属性
●Trigger模板中也可以有Triggers
●Style和ControlTemplate可以混合使用
●DataTemplate模板控制数据显示方式
●ItemsPanelTemplate模板控制条目控件ListBox,Menu,StatusBar等
●HierarchicalDataTemplate模板控制分层数据结构的控件
****************数据绑定****************
●控件到控件的绑定 Text="{Binding ElementName=scrollBar1, Path=Value, Mode=OneWay}"
绑定模式有四种
1:OneWay Source影响Target,但是Target却影响不到Source。
2:OneWayToSource Target影响Source,而Source却影响不到Target。
3:TwoWay Source与Target相互影响。
4:OneTime 在OneWay的基础上延伸了一个OneTime,仅绑定一次。
●.net对象与控件的绑定
List
list.Add(new Student() { Name = "hxc", Age = 20 });
listView1.ItemsSource = list;
注意IValueConverter的使用,可以控制特定行颜色等,具体使用搜索IValueConverter
●.net方法与控件的绑定
public class Student
{
//前台要引用的方法
public string GetName()
{
return "一线码农";
}
}
●验证数据
实现ValidationRule接口,然后写上自定义的验证逻辑
****************细说控件****************
●内容控件 全部基于ContentControl、
一、ButtonBase:1.Button,2.RepeatButton(重复执行click事件),3.GridViewColumnHeader,4.ToggleButton(radio,check)
二、HeaderedContentControl:1.Expander,2.GroupBox,3.TabItem
三、ToolTip 不能独立的作为一个控件使用,而是与其他具体控件的ToolTip联合使用。ToolTipSerivce类,可用于设计Tooltip显示的相对位置,提示时间
四、ScrollViewer
●条目控件 继承自ItemsControl 两个重要属性Items(ItemCollection类型)和ItemsSource(IEnumerable类型)
一、MenuBase:1.Menu,2.ContextMenu
二、Selector:1.Listbox,2.ComboBox,3.TabControl,4.ListView
三、StatusBar
四、TreeView
●文本控件 TextBox,RichTextBox,PasswordBox
●范围控件 基于RangeBase,重要属性LargeChange,SmallChange,Maximum,Minimum
一、ScrollBar
联动
二、ProgressBar IsIndeterminate=true(无限滚动进度条)
****************画刷****************
基于Brush,重要属性Opacity,RelativeTransform,Transform
●SolidColorBrush 实心画刷
●GradientBrush 渐变画刷
1:LinearGradientBrush(线性渐变画刷)
2:RadialgradientBrush(圆形渐变画刷)
●TileBrush
1:ImageBrush(图像画刷)
2:VisualBrush(控件画刷) 任何控件都可以作为画刷
3:DrawingBrush(自定义画刷)
****************补充****************
●UserControl(用户控件)
UserControl类似一个Window,可以将几个控件组合起来,成为一个用户控件,以便重复使用
●ResourceDictionary(资源字典)可以共享定义好的样式
●Window生命周期 Initialized,Activated,Loaded,ContentRendered,Deactivated,GotFocus,LostFocus,GotKeyboardFocus,LostKeyboardFocus,Closing,Closed
●属性更改通知(INotifyPropertyChanged)
●依赖属性(DependencyProperty)