博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
A damn at han’s Windows phone book 笔记(5:ruler—— canvas)
阅读量:6913 次
发布时间:2019-06-27

本文共 1291 字,大约阅读时间需要 4 分钟。

Canvas的特点:

和grid, stackpanel等有明显区别:它没有动态布局。子元素放上去后就定住了。

因此canvas的子元素不用设置alignment,margin这些东西,也无法自适应landscape和portrait之间的转换。

如果用canvas做主布局,就要么landscape,要么portrait,最好不要两者都支持。

canvas的默认长宽都是0,超出canvas边界的部分也会显示出来,记得要给canvas设置长宽。

若跑出canvas以外的子元素被点击了,canvas仍然收的到这个事件。

canvas的默认背景色不是transparent,而是null。背景色是null和transparent看起来是一样,区别在于transparent可以响应点击,null不行(子元素被点击除外)。

 

点画线

 

让Button更容易命中的技巧

如果button后面的背景也接收点击,那么很容易会点错,这时候可以增加padding来让button更容易命中。

 

IsHitTestVisible

这个属性为false则不响应任何手势,视觉上不透明,“触觉上”是透明的。

 

Slider控件

它的LargeChange属性表示一次最小拖动的改变量。SmallChange不起任何作用。

要把slider的vertical alignment属性设为center,如果是默认值Strech,则触到父容器内别的地方也会激发slider的改变。

 

GetPosition函数定位触摸位置

在tap和drag的时候,都可以通过事件的参数来得到位置信息。

设置捕获drag和tap事件的函数:

<Canvas  MouseMove="InteractiveCanvas_MouseTapOrDrag"

                MouseLeftButtonDown="InteractiveCanvas_MouseTapOrDrag">

用GetPosition函数处理事件:

        void InteractiveCanvas_MouseTapOrDrag(object sender, MouseEventArgs e)

        {
            // Get the finger position relative to the landscape-oriented page
            double x = e.GetPosition(this).X;

其中GetPosition函数的形参relativeTo是指相对于哪个控件的位置,并非必须是父控件。

 

在代码中使用静态资源

XAML里的StaticResource,用C#代码是:Application.Current.Resources[“name”] 的形式,例如:

this.LayoutRoot.Background = Application.Current.Resources[“PhoneChromeBrush”] as Brush;

转载于:https://www.cnblogs.com/dc10101/archive/2011/10/08/2203136.html

你可能感兴趣的文章
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
solr搜索引擎使用
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Python面向对象之类的成员
查看>>
[一文一命令]more命令详解
查看>>
mapreduce运行机制
查看>>
netstat 命令详解
查看>>
网络I/O模型
查看>>
javascript深度理解数组排序
查看>>
关于map.put()方法,报java.lang.NullPointerException空指针异常
查看>>
linux下SSH远程连接服务慢解决方案
查看>>
【未完】mongodb安装+副本集搭建+数据导入
查看>>
ssh连接慢(DNS惹的祸)
查看>>
linux时间服务器 ntp ntpdate
查看>>
2012年最好的10个HTML5网站
查看>>
老男孩教育每日一题-2017-04-18:命令风暴:如何快速删除Linux中海量小文件?
查看>>
老男孩教育每日一题-第125天-显示文件oldboy.txt的第20行到30行请问如何做?
查看>>
nginx bind() to 0.0.0.0:**** failed (13: Permission denied)
查看>>
Activiti 入门示例
查看>>