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定义一类控件的外观 <Style TargetType="Button">
●x:Key定义一个ID供单独调用 <Style x:Key="mystyle" TargetType="Button">
●BaseOn继承 <Style x:Key="childStyle" TargetType="Button" BasedOn="{StaticResource ResourceKey=baseStyle}">
●Triggers触发器定义特定事件发生时的外观
●MultiTrigger定义多个特定事件发生时的外观
●DataTrigger定义控件特定状态下的外观,如radio的checked
●MultiDataTrigger定义控件多个状态同时存在时的外观

****************模板Template****************
模板重新定义控件的外观,颠覆原外观(当然还可以继承)
●ControlTemplate模板控制控件外观 <ControlTemplate x:Key="rect" TargetType="{x:Type CheckBox}">
●ContentPresenter继承控件原模板属性 <ContentPresenter/> Margin绑定到Padding<ContentPresenter Margin="{TemplateBinding Padding}" />
●Trigger模板中也可以有Triggers
●Style和ControlTemplate可以混合使用
●DataTemplate模板控制数据显示方式 <DataTemplate x:Key="rect">
●ItemsPanelTemplate模板控制条目控件ListBox,Menu,StatusBar等 <ItemsPanelTemplate x:Key="items">
●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<Student> list = new List<Student>();
list.Add(new Student() { Name = "hxc", Age = 20 });
listView1.ItemsSource = list;
<GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Name}"/>
注意IValueConverter的使用,可以控制特定行颜色等,具体使用搜索IValueConverter
●.net方法与控件的绑定
public class Student
{
//前台要引用的方法
public string GetName()
{
return "一线码农";
}
}
<ObjectDataProvider x:Key="Test" ObjectType="{x:Type local:Student}" MethodName="GetName"></ObjectDataProvider>
<TextBlock Text="{Binding Source={StaticResource ResourceKey=Test}, Mode=OneWay}"/>
●验证数据
实现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
联动<ScrollBar Name="test" Orientation="Horizontal" Maximum="100" Minimum="5" SmallChange="2" Height="17" Width="186" />
<TextBox Name="txtScrollValue" Text="{Binding ElementName=test, Path=Value}"/>
二、ProgressBar IsIndeterminate=true(无限滚动进度条)

****************画刷****************
基于Brush,重要属性Opacity,RelativeTransform,Transform
●SolidColorBrush 实心画刷
●GradientBrush 渐变画刷
1:LinearGradientBrush(线性渐变画刷)
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="Yellow" Offset="0.5"/>
<GradientStop Color="Green" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
2:RadialgradientBrush(圆形渐变画刷)
<Rectangle.Fill>
<RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
<RadialGradientBrush.GradientStops>
<GradientStop Color="Yellow" Offset="0"/>
<GradientStop Color="Red" Offset="0.25"/>
<GradientStop Color="Blue" Offset="0.75"/>
<GradientStop Color="LimeGreen" Offset="1"/>
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Rectangle.Fill>
●TileBrush
1:ImageBrush(图像画刷)
<Grid.Background>
<ImageBrush x:Name="landBrush" ImageSource="C:\Users\Administrator\Desktop\weibo\64512.gif"/>
</Grid.Background>
2:VisualBrush(控件画刷) 任何控件都可以作为画刷
3:DrawingBrush(自定义画刷)

****************补充****************
●UserControl(用户控件)
UserControl类似一个Window,可以将几个控件组合起来,成为一个用户控件,以便重复使用
●ResourceDictionary(资源字典)可以共享定义好的样式
●Window生命周期 Initialized,Activated,Loaded,ContentRendered,Deactivated,GotFocus,LostFocus,GotKeyboardFocus,LostKeyboardFocus,Closing,Closed
●属性更改通知(INotifyPropertyChanged)
●依赖属性(DependencyProperty)

原文地址:https://www.cnblogs.com/microyx/p/8452692.html

时间: 2024-10-14 18:15:15

wpf笔记(读一线码农8天入门wpf)的相关文章

经典算法C++版(参考一线码农博文)

鉴于一线码农的算法博文基本通过C#完成,此处用C++再实现一遍,具体解法可参考其博文. 地址:http://www.cnblogs.com/huangxincheng/category/401959.html. 1.百钱买百鸡(降低时间复杂度) void NumofHen_1() { int x, y, z; for ( x = 1; x < 20; x++) { for ( y = 0; y < 33; y++) { z = 100 - x - y; if ((z % 3 == 0) &am

WPF笔记(1.8 资源与映射)——Hello,WPF!

原文:WPF笔记(1.8 资源与映射)--Hello,WPF! 终于,看明白了,已经是凌晨1:39分.这本书这一节写得实在是不好,一个local搞得我糊里糊涂,于是,准备按照他的思路,按照我的理解,改写一遍,包括源代码.首先,这句话WPF新版本已经不用了:<?Mapping XmlNamespace="local" ClrNamespace="DataBindingDemo" ?>,这里DataBindingDemo是例子的命名空间.然后Window标签

一个移动开发老码农的书单

了解更多老码农的个人信息,爱八卦的,请看这里:http://www.koulianbing.com/?page_id=12 老码农是个比较宅的人,不爱玩游戏,只爱看书.过去10年来读的书中,还能记得的书大部都是很不错的,列出来推荐给大家.会持续更新. 一.开发技术 1.Effective Objective C 2.0 适合代码量在5000行以后阅读,对细节优化,性能提升,结构设计都非常有帮助,强烈建议所有iOS码农人手一本,至少读三遍. 2.Objective-C高级编程 日本人写的,薄薄的一

转:码农翻身全年文章精华

在码农翻身公众号写了一年多, 最大的体会就是:原创真心不易! 每天思考的最大问题就是: 下一篇文章写啥? 在大家的支持和鼓励下,还是坚持了下来,  回头看看走过的路,这一年过得还算充实. 很快就要过年了, 我也要休息一下, 春节后重新出发 ! 我把这一年来的精华文章整理了一下,作为节前的最后一篇, 欢迎转发分享. 再次感谢大家一年来的陪伴, 预祝大家春节快乐,万事如意! 大话编程 我是一个线程 我是一个Java class Javascript: 一个屌丝的逆袭 Java:一个帝国的诞生 JSP

培训码农怎么招惹你们科班码农了?

刚入行没多长时间的时候就想写类似的博文,大街小巷行内都充斥着,“哟看,他是X鸟,他是X内的.”这种怪异的想法. 首先我们是培训出来的,你们是科班毕业的,但是不还是跟我们一样坐在一线码农的位置上么?如果你科班毕业直接是中层领导,我无话可说.但是我们都在一个起跑线上,你没有资格鄙视我. 其次,现在培训行业的确很流氓,这个是因为一些市场原因和教育资源的原因等几方面造成的. 现在学生简历造假,这个事情应该发生部分地区,作为前辈的确有必要和义务去阻止以及谴责这样的行为,两个陌生人的第一次诚信就在这一张纸上

码农 第7期pdf

下载地址:网盘下载 Python到底为什么要叫做Python(蟒蛇)呢?Python的发明人GuidovanRossum说,那是因为他需要一个简短.独特,还略带有神秘感的名字.(刚巧那时他正在看一个70年代的BBC喜剧秀,叫做"巨蟒剧团的飞翔马戏团".) Python作为一门编程语言,可能最欠缺的就是"神秘感"了.它可以是"好玩的(PlayfulProgramming)",也可以是"好学的"(Python甚至可以用来教授给小学

8天入门wpf—— 第四天 模板

今天说下wpf中的模板,前面一篇中我们讲到了style,但是style所能做的仅仅是在现有控件的基础上进行修修补补,但是如果我们想彻底颠覆控件样式,那么我们就必须使用这一篇所说的模板. 老外写书都喜欢在篇头搞一个类图,方便我们宏观认识,这里我也上一个. 一:控件模板 1:ControlTemplate 我们知道wpf的控件都是继承自Control,在Control类中有一个Template属性,类型就是ControlTemplate. 那么利用这个ControlTemplate就可以彻底的颠覆控

非专业码农 JAVA学习笔记 6java工具类和算法-string

续<非专业码农 JAVA学习笔记 5 java工具类和算法> 五.字符串string 字符串和字符的差别:字符串双引号括起来”n”,字符用单引号括起来,表示一种符号’\n’ 1.string的主要方法和属性 类 方法或者属性 备注 定义string Stirng s=new string(“值”),string s=”值” 属性 string.length:string的长度为字节 方法startswith,endswith s.startwith(“值”)-以值为开头,s.endswith(

非专业码农 JAVA学习笔记 3 抽象、封装和类(2)

(2).静态域-放在内存公共存储单元,不放在特定的对象,用static修饰 (续上一篇<非专业码农 JAVA学习笔记 3 抽象.封装和类(1)>...) (3).静态初始器-由static引导的一对大括号括起来的语句组,作用跟构造函数相似 (4).最终域-final引导的,值在整个过程都不发生改变的 5.方法 (1)方法的定义:修饰词1 修饰词2…返回值类型 方法名(参数) throw[异常列表] 这里个人经验就是注意定义了返回值的方法,要在方法体里面增加return 该类型变量:此外遇到if