zoukankan      html  css  js  c++  java
  • 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属性 
              -加标记:用到Pushpin类
         //为地图加标记
                Pushpin pin = new Pushpin();
                pin.Location = new GeoCoordinate(30.3441333,120.342155132);
                pin.Width = 200;
                pin.Height = 200;
                pin.Content = "济南";
                pin.Background = new SolidColorBrush(Colors.Red);
                mymap.Children.Add(pin);
              -绘制多变型区域:用到MapPolygon类 实例化 设置Locations属性即可
         //在地图上绘制多边形
                MapPolygon polygon = new MapPolygon();
                polygon.Fill = new SolidColorBrush(Colors.Red);
                polygon.Stroke = new SolidColorBrush(Colors.Yellow);
                polygon.StrokeThickness = 5;
                polygon.Opacity = 0.7;
                polygon.Locations = new LocationCollection()
                {
                    new GeoCoordinate(30,120),
                    new GeoCoordinate(30,130),
                    new GeoCoordinate(30,160),
                    new GeoCoordinate(30,140)
                };
                mymap.Children.Add(polygon);
       -绘制多边线:用到MapPolyline 实例化 设置Stroke属性和Locatatoins
         //在地图上绘制多边线
                MapPolyline polyline = new MapPolyline();
                polyline.Stroke = new SolidColorBrush(Colors.Red);
                polyline.StrokeThickness = 5;
                polyline.Opacity = 0.5;
                polyline.Locations = new LocationCollection()
                {
                    new GeoCoordinate(30.3424242,120.3432444),
                    new GeoCoordinate(30.3424242,120.3432444)
                };
                mymap.Children.Add(polyline);
              -在地图上添加图片
          //在地图上添加图片
                Image image = new Image();
                image.Width = 100;
                image.Height = 100;
                image.Source = new BitmapImage(new Uri("Images/Pic1.jpg",UriKind.Relative));
                MapLayer imagelayer = new MapLayer();
                imagelayer.AddChild(image,new GeoCoordinate(30,120),PositionOrigin.BottomLeft);
                mymap.Children.Add(imagelayer);

    WP7控件开发(四)-Silverlight Tookit控件集
    包括:Contextmenu、ToggleSwitch、WrapPanel、DatePicker、TimePicker、AutoCompleteBox、NavigationTransition、ListPicker、LongListSelector
            -Contextmenu
      -长按弹出菜单
      -不能在容器控件中使用
     -ToggleSwitch:具有两种状态Checked和Unchecked
     -WrapPanel:用来对大量控件进行按顺序排列的容器
     -DatePicker:设置日期时间,可通过ValueStringFormat来设置时间的显示格式:{}{0:d},{}{0:t} ,{}{0:D},{}{0:T},{}{0:MM-dd-yyyy},{}{0:HH:mm}
     -TimePicker:设置时间时分秒
     -AutoCompleteBox:
         属性:
      -FilterMode:匹配方式
      -IsDropDownOpen:下拉列表是否打开
      -IsTextCompletionEnable:自动完成匹配填写
      -MaxDropDownHeight:下拉列表的最大高度
      -MinimumPopulateDelay:最小匹配时间
      -MinimumPrefixLength:最短匹配长度
      事件:
      -DropDownClosed
      -DropDownClosing
      -DropDownOpened
      -DropDownOpening
     -NavigationTransition:
      -实现页面的切换效果
      -使用之前要将App.xaml.cs中InitializePhoneAppliation()函数里的RootFrame进行修改
       如:RootFrame=new TransitionFrame();
      -五种动画效果包括:RollTransition、RotateTransition、SlideTransition、      SwiveTranstion、TurnstileTransition
          示例:
           <toolkit:TransitionService.NavigationInTransition> //进入页面动画效果
                          <toolkit:NavigationInTransition>
         <toolkit:NavigationInTransition.Backward>
         <toolkit:RotateTransition Mode="In180Clockwise"/>//这是一个旋转的动画效果
        </toolkit:NavigationInTransition.Backward>
        <toolkit:NavigationInTransition.Forward>
         <toolkit:RotateTransition Mode="In180Clockwise"/>
        </toolkit:NavigationInTransition.Forward>
              </toolkit:NavigationInTransition>
          </toolkit:TransitionService.NavigationInTransition>
        <toolkit:TransitionService.NavigationOutTransition> //退出页面动画效果
       <toolkit:NavigationOutTransition>
        <toolkit:NavigationOutTransition.Backward>//后退的动画效果
         <toolkit:RotateTransition Mode="Out180Clockwise"/>
        </toolkit:NavigationOutTransition.Backward>
        <toolkit:NavigationOutTransition.Forward>
         <toolkit:RotateTransition Mode="Out180Clockwise"/>
        </toolkit:NavigationOutTransition.Forward>//向前的动画效果
       </toolkit:NavigationOutTransition>
        </toolkit:TransitionService.NavigationOutTransition>
     -ListPicker:简单的列表框,Full Mode完整页面的列表
     -LongLIstSelector:数据归类列表,把数据进行绑定和分类
     -UserControl:用户自定义控件,UserControl类,同样继承于UIElement
                示例:Waiting控件的实现

    WP7控件开发(五)-Panorama全景视图,Pivot枢轴视图
     -Panorama视图:使用一个超过屏幕宽度的长水平画布,提供独特显示控件,数据和服务的方式,是一种选项、导航和数据的多屏幕         滚动菜单
      -结构包括:Background,Title,Items,Background图片高度要为800像素,宽度大于480像素,小于2000像素
     -Pivot视图:快捷管理应用中的视图或页面,过滤数据,视图分类
      -结构包括:Title,Header,PivotItem
      -使用注意:Header文字不要显示过长,以免其他PivotItem中的Header无法显示,在PivotItem中,不要使用ScrollViewer   或ListBox这类带有手势的控件
    WP7控件开发(六)-DeepZoom技术
     -DeepZoom:源于遥感影像的金字塔显示方式,提供了与高分辨率图像进行交互的能力,可以快速缩放图像而不影响应用的性能,加载或平移图像时可以光滑过度
      -应用:高分辨率、极大图像的浏览,3D合成图像,广告宣传
      -分类:Single和Collection
     -DeepZoom Composer制作工具下载地址:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=457B17B7-52BF-4BDA
     87A3-FA8A4673F8BF
     -MulitScaleImage:打开、放大和平移多分辨率图像,快速任意缩放展示大图形、高分辨率图像的应用程序  -属性:Source,UseSprings-springs animations,ViewportOrigin-CenterPoint,ViewportWidth-ZoomLevel
     

  • 相关阅读:
    【ABAP系列】SAP 系统的消息类型分析 MESSAGE TYPE
    【FICO系列】SAP FICO-模块 关于固定资产年结和折旧的问题
    【ABAP系列】SAP ABAP 刷新SCREEN的方法
    【ABAP系列】SAP ABAP 控制ALV单元格编辑后获取新的数值
    【ABAP系列】SAP ABAP系统变量及注释
    【EWM系列】SAP EWM凭证对象表概览
    【EWM系列】SAP EWM中仓库任务WT创建的函数
    教你快速录制gif动图
    阿里巴巴的26款超神Java开源项目!
    HTTP和HTTPS协议,看一篇就够了
  • 原文地址:https://www.cnblogs.com/yja9010/p/3178789.html
Copyright © 2011-2022 走看看