WPF 学习笔记《3》——简单控件
无论是winform还是wpf都有控件,任何一种UI的呈现都离不开控件。
一、内容控件:
1、按钮控件:
Button:值得注意的地方是:点击事件是在鼠标左键按下(或键盘enter键按下)之后并松开才能触发的事件。
当一个窗体是通过showDialog的方法打开的话,那么这个窗体上的button具有以下属性:Iscancel,和Isdefault当IsCancel置 为true时点击即可关闭对话框,Isdufault设为true时,按enter就会触发该按钮的单击事件。
ReapeatButton:形状与Button类似,但是他的单击事件发生在:鼠标按下还未松开之时(或回车键按下之后并未松开)
有两个属性:Delay:设置的值是以毫秒为单位,是从回车键按下之后开始计时,经过一段时间的延迟之后继续调用该单击事件。
Interval:是指调用事件的间隔。
ToggleButton:点击时可以保留点击状态的按钮
属性:IsThreeState:true时 :点击就会有三种状态,第一次点击时:该控件的一个属性Ischecked会设置为true,第二次点击就会设置为null,第三次点击就会设置为false,循环。
false(默认)时:就只有true和false两种状态了。
同时每个状态对应会执行相应的事件:
true执行事件:Checked
null执行事件:Indeterminate
false执行事件:Unchecked
CheckBox:性质和功能属性类似于ToggleButton就是长得不一样。
RadioButton:可以用自定义的分组,用属性:GroupName
也可以将其放在同一个父元素中,实现分组。
继承自ToggleButton,(但是通过单击本身实现状态改变时不可能的)
2、简单容器控件:
Lable:时将一些文字放到屏幕上的控件,但是值得注意的是他可以实现访问键的支持,只需要在lable 标签中加上AcessText标签,并且content前要加上“_”,然后,再将lable的Target属性绑定到要获取焦点的textbox等,即可实现按下alt+(_之后的第一个字母)是该textbox获取焦点。
(如果“_”之后第一个字符是中文好像就不支持)
如果要想让lable换行也可以实现: 在AccessText标签内有属性:TextWrapping="WrapWithOverflow"即可。
ToolTip:不能够直接放在UI树中,需要附加到另一个元素的ToolTip属性中
在ToolTip中还可以加上多个控件或面板。
有事件:opened:显示时执行。Closed:关闭时执行。
ToolTipService 定义了一些附加属性:
showDuration鼠标停放在元素上多长时间显示
InitialShowDelay 显示多长时间。
frame: 类似于HTML中的Frame,它有属性:content,Source
但是由于frame不支持子元素,必须显示的实现content, <frame.Content>....</frme.Content>
Source属性可以设置链接的URL
两者的优先级是,content高于source。
3、header容器
GroupBox:他的头可以放置一个任何控件
<GroupBox.Header>....</GroupBox.Header>
Expander:可以折叠的控件:
ExpandDirection属性:决定展开的方向。
二、Item控件:
1、selector:
都有三个属性:selectedindex,selectedvalue,selectedItem。
comobox:有IsEditable和IsReadOnly决定选择的结果是否可以编辑。IsDropDownOpen属性设置是否打开。
有事件:DropdownOpened下拉框出现时触发。DropdownClosed下拉框关闭时触发。
(用法与winform差不多)将自己的每一个子项包装到一个隐式的comoboxItem中(这与Listbox差不多(listboxItem))
listbox:在它的隐式内容控件Itme中经常方的是ListBoxItem控件,但是他是可以随意放任何控件的。
listview与listbox差不多。
TabControl:与winform差不多。
2、菜单:
Menu:水平放置,各项添加在MenuItem标签内,Separator标签水平线分割的渲染。
contextmenu:不能直接放入到元素树上要嵌入某个元素(如listbox)右键菜单。
3、其他Items控件:
TreeView:每项被包装在TreeViewItem中
ToolBar:对小按钮进行分组, 放入ToolBarTray中就可以实现拖曳,除非设置了IsLocked的附加属性。
StatuBar:通常放在窗口底部显示状态信息。可以放置任何控件。
三、Range控件。
ProgressBar:进度条minimum,maximum,IsIndeterminate(为true设置一段动画不需要计算时间)Orientation设置进度条的水平还是垂直
Slider:带刻度,可以通过鼠标移动改变。
四、文本和墨水控件:
文本控件:TextBox,RichTextBox,PasswordBox,
墨水控件:InkCanvas (当windows 的SizeToContent设置一定值后可以随着笔画而适当调整窗口大小)
属性:EditingMode 来设置各种模式。

浙公网安备 33010602011771号