WP7控件开发学习笔记(一)
WP7控件开发(一)
一、UIElement控件通用属性
-Height/Width:用户设置的控件大小,是预期的大小
-ActualHeight/ActualWidth:获取控件的实际大小
-MaxHeight/MaxWidth & MinHeight/MinWidth :设置控件大小的三个属性()如果值发生冲突,首先要保证的是Min然后是Max,但是这两个值一定要在Height/Width设置值之间才有效
-Cursor:设置/获取控件光标形状
-DataContext:设置或获取控件数据内容
-HorizontalAlignment/VerticalAlignment:设置/获取控件水平/垂直方向的对其方式
-Language:设置/获取localization/globalization语言信息
-Margin:设置/获取控件与页面的边距
-Name:设置/获取控件的名称
-Parent:设置获取控件的父容器
-Resource:设置/获取控件资源字典,使资源像样式那样通过引用资源窜名,在Xaml中使用
-Style:设置/或获取控件的外观样式,也可以先定义好绑定到多个控件上
-Tag:为控件添加标签说明
-CacheMOde:设置/获取一个值,该值指示应在可能高速缓存已呈现的内容
-Clip:设置/获取控件剪裁效果
-DesireSize:获取系统布局大小,对于布局的调整很有用
-Opacity:设置/获取控件的透明度
-OpacityMask:设置/获取一个控件蒙版,来产生蒙版透明效果
-UseLayoutRounding:设置/获取控件及子控件是否按子像素进行布局,使控件外观圆滑清晰
-Visiblity:设置/获取控件是否可见
-Background:设置/获取控件的背景效果
-Projection:设置/获取控件的3-D透视效果
-Foreground:设置/获取字体颜色
-RenderTransformOrigin:设置/获取变形的起始点
-RenderTransform:设置/获取变形效果
-Template:设置或获取控件模板
-IsHitTestVisible:获取或设置控件是否接受焦点事件
-HorizontalContentsAlignment/VerticalContentsAligment:获取或设置控件内容的对齐方式
二、容器控件(Grid,Canvas,StackPanel,Border,PopUp,ScrollView)
1、Grid的使用
2、Canvas的使用:用来精确定位容器内的控件坐标,以及层次关系
3、StackPanel使用:设置控件的排列顺序
4、Border使用:可以容纳其它控件
5、PopUp:自身可以被打开和关闭,通常用来制作自定义的消息弹出框和输入框
7、ScrollView:拖动显示其包含的子控件的内容
三、按钮控件的使用(Button,HyperlinkButton,RepeatButton,ToggleButton)
1、HyperlinkButton:用于连接本地或Web地址,当链接Web地址时,一定要在在标签里加上TargetName=“_Self”的属性值
2、RepeatButton:按下后不断触发Click事件
3、ToggleButton:开关按钮,三种状态Checked、Unchecked、Indeterminate
控件开发(二)
1、PasswordBox:用于输入自定义遮罩字符的密码框控件,属性PasswordChar用来显示输入的密码替换符号
2、TextBox:可以让软键盘产生不同的键面效果;InputScope属性可通过代码获取属性列表
typeof(InputScopeNameValue).GetFields(BindingFlags.Public|BindingFlags.Static)
3、Image控件:只能加载png和jpg的图片
4、MediaElement:播放本地或网络上的多媒体;支持多媒体格式:WAV、MP3,支持mms、rtspt、rtsp流媒体协议;-属性IsMuted是否静音Stretch设置视频画面在控件中的填充方式AutoPlay是否自动播放;-事件MediaOpened MediaEnded MediaFailed 注意:其对视频的格式和帧大小有相应的要求
5、TextBlack:在页面上显示文字
6、CheckBox:多选控件;不能通过Width和Height来改变大小;可以通过其属性RenderTransform的ScaleTransform(ScaleX、ScaleY)变形改变大小
7、RadioButton:单选按钮;其改变大小的方式同CheckBox
8、ProgressBar:两种类型:显示确切进度和不断重复的动画
9、Slider:可以设置水平、垂直方向的滑竿
10、Thumb:通过拖动,获取连续的坐标,三个基本事件DragDelta(鼠标移动时)、DragStart(开始拖动)、DragComplete(拖动完成)
11、ListBox:相当一个容器,可以通过ListItem来组合多个控件而得到不同功能的List
控件开发(三)-绘图控件,地图控件
-InkPresenter:产生手写效果
示例代码:
Stroke newStroke;
private void inkPresenter1_LostMouseCapture(object sender, MouseEventArgs e)
{
newStroke = null;//失去焦点时销毁上一次的Stroke
}
private void inkPresenter1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
inkPresenter1.CaptureMouse();//开始捕获鼠标移动路径
StylusPointCollection spc = new StylusPointCollection();
spc.Add(e.StylusDevice.GetStylusPoints(inkPresenter1));
newStroke = new Stroke();
this.inkPresenter1.Strokes.Add(newStroke);
}
private void inkPresenter1_MouseMove(object sender, MouseEventArgs e)
{
if (newStroke != null)
{
//记录鼠标在inkPresenter1上的移动的点
newStroke.StylusPoints.Add(e.StylusDevice.GetStylusPoints(inkPresenter1));
}
}
-Path:通过Markup Syntax来绘制一系列的线条,通过Geometries来绘制形状
示例:
<Path Height="428" HorizontalAlignment="Left"
Margin="12,127,0,0" Name="path1" Stroke="Red" StrokeThickness="10" VerticalAlignment="Top" Width="456" Fill="Green">
<Path.Data>
<EllipseGeometry Center="200,200" RadiusX="100" RadiusY="30"/>
</Path.Data>
</Path>
-Ellipse:绘制圆形或椭圆形
-Rectangle:绘制矩形
-Line:绘制两点间的连线
-Polygon:绘制封闭多边形
-Polyline:绘制封闭、开发多边形
-Glyphs:绘制字母、符号、字符等,主要用来显示Unicode字符,需要加载字体库从网上下载字体库,对于 使用不多的情况使用,否则会消耗系统的资源
-Map控件:在使用时,首先要申请授权验证密钥 显示模式设置有Road、Arial
-显示缩放按钮:ZoomBarVisibility属性
-显示比例尺:ScaleVisibility属性
-加标记
补充:移动开发 , Windows Phone ,