[UWP-小白日记16]UWP中的3D变换API

还没开始

  好久没写博客了,再来开坑。


正文

  Transform3D:“这个和CSS的3D好像的说”

  PerspectiveTransform3D:这个用来指定容器是否具有3D空间,都是放在根容器下面的。

  注意Depth:默认1000,如过设置过大会导致子元素超出容器

<Grid Background="{StaticResource ProcurePageBackground}">
        <Grid.Transform3D>
            <PerspectiveTransform3D Depth="4000" />
        </Grid.Transform3D>
</Grid>

  CompositeTransform3D:需要做3D变换的子元素上设定。

<Border BorderBrush="Black"
              BorderThickness="4"
              Background="#FF0B5B29"
              Loaded="Border_Loaded">
                <Border.Transform3D>
                    <CompositeTransform3D ></CompositeTransform3D>
                </Border.Transform3D>
                <TextBlock Text="2" />
</Border>

  按着上面的设定一个基本的3D变换就设定完成了

TIPS:注意这玩意有个坑,注意Z-Index!注意Z-Index!注意Z-Index!在XAML上后面的元素会覆盖前面的元素,so,如果你做立方体什么的要自己

计算Z-Index以免后面的元素覆盖前面的元素

实例

  

注意:3D空间的正负方向,Y轴左转是正,右转是负,这个自己试下就知道了。

实现代码:

 <Storyboard x:Name="InSB">
            <DoubleAnimation Storyboard.TargetName="LeftGrid"
                             Storyboard.TargetProperty="(UIElement.Transform3D).(CompositeTransform3D.RotationY)"
                             Duration="0:0:3"
                             To="90"
                             EnableDependentAnimation="True"></DoubleAnimation>
 </Storyboard>

 

<Grid Background="{StaticResource ProcurePageBackground}">
        <Grid.Transform3D>
            <PerspectiveTransform3D Depth="1000" />
        </Grid.Transform3D>
     <Grid Name="LeftGrid" Loaded="LeftGrid_Loaded">
            <Grid.Transform3D>
                <CompositeTransform3D/>
            </Grid.Transform3D>
            <Border BorderBrush="Red"
                    BorderThickness="4"
                    Background="#FF11321E">
                <TextBlock Text="1" />
            </Border>
            <Border BorderBrush="Black"
                    BorderThickness="4"
                    Background="#FF0B5B29"
                    Loaded="Border_Loaded">
                <Border.Transform3D>
                    <CompositeTransform3D />   
                </Border.Transform3D>
                <TextBlock Text="2" />
            </Border>
      </Grid> </Grid>

 注意下面Border_Loaded中temp.TranslateX和temp.RotationY的顺序,你可以自己互换看看有什么不同。

private void LeftGrid_Loaded(object sender, RoutedEventArgs e)
        {
            var temp = LeftGrid.Transform3D as CompositeTransform3D;
            temp.CenterZ = -centePos;
            temp.CenterX = centePos;
        }

private void Border_Loaded(object sender, RoutedEventArgs e)
        {
            (sender as Border).Width = WidthGrid;
            var temp = (sender as Border).Transform3D as CompositeTransform3D;
            temp.TranslateX = WidthGrid;
            temp.RotationY = -90;
        }
double centePos;
private double WidthGrid;

public MainPage()
        {
            this.InitializeComponent();

            centePos = (this.ActualWidth / 2) / 2;
            WidthGrid = this.ActualWidth / 2;
            this.SizeChanged += (s, e) =>
            {
                centePos = (e.NewSize.Width / 2) / 2;
                WidthGrid = e.NewSize.Width / 2;
            };
        }

 

转载于:https://www.cnblogs.com/Enious/p/6622194.html

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值