《wpf深入浅出》读书笔记

时间:2021-03-20 09:06:43

 
binding 

binding设置的三合一操作:

this.textBoxName.SetBinding(TextBox.TextProperty,new Biding("Name"){Source = stu =new Student()});

把控件作为Binding源与Binding标记扩展

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="TxzWindow" Height="300" Width="400">
<StackPanel>
<TextBox x:Name="textBox1" Text="{Binding Path=Value, ElementName=slider1,UpdateSourceTrigger=PropertyChanged}" BorderBrush="Black" Margin="5" />
<Slider x:Name="slider1" Maximum="100" Minimum="0" Margin="5"/>
</StackPanel>
</Window>

《wpf深入浅出》读书笔记

等价代码:

this.textBox1.SetBinding,new Binding("Value"){}ElementName="slider1"});

 <TextBox x:Name="textBox1" Text="{Binding Value, ElementName=slider1}" BorderBrush="Black" Margin="5" />


特别注意:

设置Binding的UpdateSourceTrigger属性为PropertyChanged


Binding的源Path=要获取的属性值,Source=要获取值的目标,也就是说binding的是“Source”里面的“Path”值。


关于该部分的代码语法变种详见P90~P91。





创建依赖属性:P142

自定义路由事件:P164

关于命令的操作:P178  ,代码详解见P179






关于wpf前台功能实现的积累:

实现拖动内部窗口大小用GridSplitter控件,详情查阅资料。http://www.cnblogs.com/mgen/archive/2011/08/23/2150548.html



还有一些小常识:

关于TextBox

自动换行的属性设置为:TextWrapping="Wrap"

设置制度:IsReadOnly="True"

最大输入数据长度(限制用户输入的字符串长度):MaxLength="XX"


PasswordBox只是隐藏了TextBox的字符串

获取 PasswordBox里面的字符内容用.Password 而不是.Text