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>
等价代码:
this.textBox1.SetBinding,new Binding("Value"){}ElementName="slider1"});
<TextBox x:Name="textBox1" Text="{Binding Value, ElementName=slider1}" BorderBrush="Black" Margin="5" />
设置Binding的UpdateSourceTrigger属性为PropertyChanged
关于该部分的代码语法变种详见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