博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二十二章:动画(八)
阅读量:6858 次
发布时间:2019-06-26

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

旋转和锚

AnchorX和AnchorY属性为“缩放”和“旋转”属性设置缩放或旋转的中心,因此它们也会影响ScaleTo和RotateTo动画。
CircleButton程序将一个Button旋转一个圆圈,但不像你之前看到的那样。 该程序围绕屏幕中心旋转按钮,为此它需要AnchorX和AnchorY。
XAML文件将Button放在AbsoluteLayout中:

此程序为Button使用AbsoluteLayout的唯一原因是将Button精确放置在屏幕上的特定位置。 XAML文件在AbsoluteLayout和Button上设置相同的SizeChanged处理程序。 该事件处理程序将AbsoluteLayout的中心保存为名为center的Point字段,并保存从该中心到最近边缘的距离作为radius字段:

public partial class CircleButtonPage : ContentPage{    Point center;    double radius;    public CircleButtonPage()    {        InitializeComponent();    }    void OnSizeChanged(object sender, EventArgs args)    {        center = new Point(absoluteLayout.Width / 2, absoluteLayout.Height / 2);        radius = Math.Min(absoluteLayout.Width, absoluteLayout.Height) / 2;        AbsoluteLayout.SetLayoutBounds(button,            new Rectangle(center.X - button.Width / 2, center.Y - radius,                          AbsoluteLayout.AutoSize,                          AbsoluteLayout.AutoSize));    }    __}

OnSizeChanged处理程序通过将Button定位在页面的水平中心来结束,但其顶边的半径距离超出AbsoluteLayout的中心:

2019_03_04_094202
回想一下,AnchorX和AnchorY属性必须设置为相对于Button的宽度和高度的数字。 AnchorX值为0表示Button的左边缘,值为1表示右边缘。 类似地,AnchorY值为0表示Button的顶部,值为1表示底部。
要围绕保存为中心的点旋转此按钮,必须将AnchorX和AnchorY设置为基于中心点的值。 Button的中心位于页面中心的正上方,因此AnchorX的默认值为0.5。 但是,AnchorY需要一个从Button顶部到中心点的值,但是以按钮高度为单位:

public partial class CircleButtonPage : ContentPage{    __    async void OnButtonClicked(object sender, EventArgs args)    {        button.Rotation = 0;        button.AnchorY = radius / button.Height;        await button.RotateTo(360, 1000);    }}

然后按钮围绕页面中心完全旋转360度。 这里正在进行中:

2019_03_04_094344

转载地址:http://baxyl.baihongyu.com/

你可能感兴趣的文章
云存储能否成为数据安全灵药?几个角度全方位剖析
查看>>
未来几年SDN将进一步提升云服务利润率
查看>>
手把手教你用 Python 和 Scikit-Learn 实现垃圾邮件过滤
查看>>
Hinton亲自讲解迄今未发表工作:胶囊理论的核心概念到底是什么?
查看>>
光伏业需要一次国内“双反”
查看>>
小微企业都在用的一体化管理解决方案
查看>>
Sql Server 2008 为开发带来的新特性
查看>>
Realm为Node.js发布对象数据库
查看>>
物联网行业将掀起新一轮并购潮 步入整合期
查看>>
夏日炎炎 构筑安防线 这些知识你Get到了吗?
查看>>
《C语言程序设计:问题与求解方法》——2.4节C语言源程序的次要组成成分:编译预处理命令、注释和声明...
查看>>
业绩不佳引裁员 雅虎2016有点烦
查看>>
《Hadoop实战第2版》——导读
查看>>
德国为新能源付出了哪些巨大的代价?
查看>>
探讨医疗人工智能之眼科AI的真实应用场景(肽积木CEO柏文洁)丨硬创公开课...
查看>>
中冶集团首度亮相智博会 探索“智慧城市的智慧地下”
查看>>
思科:6成物联网计划仍处于概念验证阶段
查看>>
远离个人信息裸奔伤害
查看>>
Orange将“鸡蛋”放入ECOMP的篮子
查看>>
大数据看AI人才分布:美国领先,中国培养潜能大
查看>>