- 控件的使用:
- ComboBox控件使用那个SelectionChanged属性,选中改变事件时,就有弊端出现,ComboBox控件的SelectedIndexChanged事件迁移为SelectionChanged事件后出现了奇怪的栈错误。经查明是SelectionChanged事件在WPF页面加载完成之前会自动执行一次,我们并不希望这样。因此,我用ComboBox控件的DropDownClosed属性事件代替了SelectionChanged属性事件,从而可以避免开这个弊端。
- DataGrid控件使用 HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible" 这两个属性,从而就可以有水平和垂直的滚动条效果。但是如果你布局在StackPanel中是没有什么效果,滚动不了,一般不建议布局StackPanel,可以使用WrapPanel布局中,效果就出现了。
DataGrid中自动生成序号,需在前台写 LoadingRow属性事件 和后台事件中获取行索引 + 1:e.Row.Header = e.Row.GetIndex() + 1;
DataGridTemplateColumn自定义单元格样式(序号)
- TextBox控件自动换行:需加上MaxWidth="300" TextWrapping="Wrap" 这两个属性就能实现你想要的效果。
- Grid默认每一个控件占据一个单元格,但是有些情况下你需要某个控件占据多行或者多列。在这种情况下,可以使用ColumnSpan和RowSpan这两个附加属性来实现。这两个属性默认的值都是1,也就是一个单元格,你可以指定大于1的数字来让控件跨越多行或者多列。
- 生成动态图,在后台自定义控件时:grid.ToolTip=停用否 和grid.Tag=主键ID 这两个关键属性,什么修改,新增都需要用它,是标志性属性。
- 重写控件:WPF原始控件样式、风格不能满足我们的需求,那么就需要自定义样式与模版来帮助我们重写控件了。
- 计算两个日期的天数之差:
- Substring的用法:
- Substring(Int32):从此实例检索子字符串。 子字符串在指定的字符位置开始并一直到该字符串的末尾。
- Substring(Int32, Int32):从此实例检索子字符串。 子字符串从指定的字符位置开始且具有指定的长度。
参数一:起始位置(从0开始)
参数二:指定长度
用法:string变量名.Substring(参数一, 参数二);
例如:
string str = "hello world";
string strs;
例子1 //从指定位置开始到结尾的字符串(0位开始)
int i=1;
strs= str.Substring(i);
strs= "ello world"
例子2 //从指定位置开始取固定长度的字符串
int i=1;
strs= str.Substring(i,3);
strs= "ell"
例子3 //返回左边的i个字符
int i=5;
strs= str.Substring(0,i)
strs= "hello"
例子4 //返回右边的i个字符
int i=5;
strs= str.Substring(str.Length-i,i);
strs= "world"
例子5 //返回两个特定字符之间的字符串
int IndexofA = str.IndexOf('e'); //字符串的话总以第一位为指定位置
int IndexofB = str.IndexOf('r');
strs= str.Substring(IndexofA + 1, IndexofB - IndexofA -1);
strs= "llo wo"