原文:windows phone (25) Canvas元素B

 ZIndex

这也是一个附加属性,表示canvas的children集合内的子元素的显示顺序,在canvas中的元素默认情况下是后面的子元素覆盖前面的子元素,所以我们可以使用此附加属性更改显示属性,ZIndex其实是一个虚拟的Z轴,正方向延伸出屏幕的,ZIndex的数值越大,表示在越向外,越小越容易被覆盖,所以如果想设置某个子元素显示,可以设置ZIndex较大值,ZIndex默认值为0;【作者:神舟龍

触摸处理

下面演示的示例是通过改变RenderTransform属性上的变形对象,从而是元素可以在屏幕上移动,也可以通过在代码中设置left和top附加属性移动Canvas中的元素;

首先在Canva中绘制三个Ellipse元素,并设置演示为红色,绿色和蓝色,另外当移动哪一个ellipse对象的时候,它的ZIndex就会在最上层,也就是设置移动的对象ZIndex值比其他两个大

xaml部分代码:

 <!--ContentPanel - 在此处放置其他内容-->        <Grid x:Name="ContentPanel" Grid.Row="" Margin="12,0,12,0">            <Canvas Name="cav">                <Ellipse Canvas.Left="" Canvas.Top="" Width="" Height="" Fill="Red"></Ellipse>                <Ellipse Canvas.Left="" Canvas.Top="" Width="" Height="" Fill="Green"></Ellipse>                <Ellipse Canvas.Left="" Canvas.Top="" Width="" Height="" Fill="Blue"></Ellipse>            </Canvas>        </Grid>

xaml代码比较简单,两个附加属性设置相对位置,宽和高相等做圆,填充三个不同的颜色;在这里我们重写OnManipulationStarted和OnManipulationDelta方法,在OnManipulationStarted方法中 e.ManipulationContainer = cav;

部分隐藏代码

 protected override void OnManipulationStarted(ManipulationStartedEventArgs e)        {            //获得定义坐标的容器            e.ManipulationContainer = cav;            base.OnManipulationStarted(e);        }               int i = ;        protected override void OnManipulationDelta(ManipulationDeltaEventArgs e)        {                       //获得引发事件的元素            UIElement element = e.OriginalSource as UIElement;            //获得修改            Point translation = e.DeltaManipulation.Translation;                       //设置新位置            Canvas.SetLeft(element,Canvas.GetLeft(element)+translation.X);            Canvas.SetTop(element, Canvas.GetTop(element) + translation.Y);            Canvas.SetZIndex(element, i++);            e.Handled = true;            base.OnManipulationDelta(e);        }

无任何移动下的效果

上面中我们看到一个新方法就是Canvas.GetLeft(element),这个是获得子元素在canvas中的left值,同理Canvas.GetTop(element),还有可以看到Canvas.SetZIndex(element, i++);把移动的元素放在最外层

看看移动的效果吧

另一张截图:

五一假期Over了,开始工作吧

windows phone (25) Canvas元素B的更多相关文章

  1. windows phone (24) Canvas元素A

    原文:windows phone (24) Canvas元素A Canvas元素表示定制一个区域,并可以通过相对坐标定义子元素位置,在一下情况下Canvas是不可见的 Height 属性等于 0. W ...

  2. 【高级功能】使用canvas元素(第一部分)

    1. 开始使用 canvas 元素 canvas 元素非常简单,这是指它所有的功能都体现在一个JavaScript对象上,因此该元素本身只有两个属性:width 和 height. canvas 元素 ...

  3. HTML5 画布canvas元素

    HTML5的canvas元素以及随其而来的编程接口Canvas API应用前景极为广泛.简单地说,canvas元素能够在网页中创建一块矩形区域,这块矩形区域可以成为画布,这其中可以绘制各种图形.可别小 ...

  4. 【温故而知新-Javascript】使用canvas元素(第一部分)

    1. 开始使用 canvas 元素 canvas 元素非常简单,这是指它所有的功能都体现在一个JavaScript对象上,因此该元素本身只有两个属性:width 和 height. canvas 元素 ...

  5. HTML5图形绘制学习(1)-- Canvas 元素简介

    Canvas元素是HTML5中新增的一个专门用来进行图形绘制的元素.和其名称Canvas一样,它就相当于一个画布,我们可以在其上描绘各种图形. 这里所说的绘制图型,不是指我们可以进行可视化的图形绘制, ...

  6. 与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触控

    原文:与众不同 windows phone (25) - Input(输入)之捕获 UIElement 之外的触控操作, Silverlight 方式捕获手势操作, XNA 方式捕获手势操作, 多点触 ...

  7. windows phone (23) ScrollViewer元素

    原文:windows phone (23) ScrollViewer元素 ScrollViewer类表示可包含其他可见元素的可滚动区域,一般会用在屏幕的宽度和高度不够用时,作为一种延伸使用,参考书上称 ...

  8. windows phone (18) Border元素

    原文:windows phone (18) Border元素 Border类是对某一个对象的周围边框,背景,或者同时绘制两者,首先看一个简单的例子进行分析[作者:神舟龍] xaml文件: <!- ...

  9. canvas元素

    一.canvas元素的基础知识 canvas元素是html5中新增的一个重要的元素,专门用来绘制图形.在页面上放置了一个canvas元素,就相当于在页面上放置了一块"画布",可以在 ...

随机推荐

  1. Linux通配符摘要

    参考<鸟哥linux私房菜> * - 通配符,代表随机字符(0对于许多) ? - 通配符,它代表一个字符 # - 凝视 / - 跳转符号,将特殊字符或通配符还原成一般符号 | - 分隔两个 ...

  2. 4种Delphi IDE的调试时查看内存的方法,太酷了!

    1.ctrl+alt+m,可以查看每个函数过程的内存位置 2.Ctrl+Alt+C 查看代码对应的汇编 3.原来用delphi看变量信息一直是简单的用watch看,但是有时候变量值直接用特定类型看总是 ...

  3. 配置QtCreator+CDB远程调试环境(要设置_NT_SYMBOL_PATH和QT_PLUGIN_PATH和Path)

    相关环境信息:开发机Win7 x64.远程机器WinXP.调试器是CDB.Qt版本5.2.1 一.部署远程机器环境 我这里用的是虚拟机(Windows XP),根据你要调试的程序选择安装不同架构的Wi ...

  4. 14.6.2 Moving or Copying InnoDB Tables to Another Machine 移动或者copy InnoDB 表到另外的机器

    14.6.2 Moving or Copying InnoDB Tables to Another Machine 移动或者copy InnoDB 表到另外的机器 这个章节描述技术关于移动或者copy ...

  5. OpenRisc-30-SD card controller模块分析与验证

    引言 ORPSoC的硬件平台是包含SD card controller控制器的,但是对应的linux里面却没有对应的linux的驱动程序,这使ORPSoC的SD card的使用收到了很大的限制.没有驱 ...

  6. HTML 页面载入 Flash 插件的几种方法

    前言 之所以写这篇文章,主要是由于组长给提的一个新的需求--使用浏览器调用电脑的摄像头,来实现即时拍照的功能.在网上查了非常多资料,由于这样那样的原因,终于选择了使用flash插件来调用pc的摄像头. ...

  7. ANDROID 中设计模式的採用--创建型模式

     所谓模式就是在某一情景下解决某个问题的固定解决方式. 全部的创建型模式都是用作对象的创建或实例化的解决方式. 1 简单工厂模式 创建对象的最简单方法是使用new来创建一个对象,假设仅仅创建一种固 ...

  8. hive编程指南--employees表数据定义

    hive编程指南中有个employees表,默认的分隔符比較繁杂,编辑起来不太方便(普通编辑器编辑的控制字符^A等被当成字符串处理了,没有起到分隔符的作用). 收集的解决方式例如以下: http:// ...

  9. 简单的 "双缓冲" 绘图的例子(研究一下)

    所谓双缓冲就是先画到内存画布(如: TBitmap), 然后再转帖到目的地. 譬如下面小程序: procedure TForm1.FormCreate(Sender: TObject); begin ...

  10. 纯C语言INI文件解析

    原地址:http://blog.csdn.net/foruok/article/details/17715969 在一个跨平台( Android .Windows.Linux )项目中配置文件用 IN ...