zoukankan      html  css  js  c++  java
  • windows phone (15) UI变换上

    在wp中只要是继承自UIElement 的任何对象都可以应用变换,当然包含Textblock,Rectangle等所有的元素,下面我们使用Textblock进行案例演示,这里会介绍到7中变换分别是:

    TransLateTransForm 移动位置,包含水平移动和垂直移动

    ScaleTransform 缩放变换 对UI进行放大缩小 包含X轴上的缩放和Y轴上的缩放

    RotateTransform 旋转 根据定义的旋转点设置角度进行旋转

    SkewTransform 对UI进行一定角度的倾斜

    MatrixTransfrom 矩阵变换,一句标准矩阵表示的变换

    TransformGroup 复合变换按照指定顺序将多个变换复合为一个变换

    CompositeTransform 组合变换按照固定顺序组合一系列变换

     这里使用变换需要用到UIElement定义的RenderTransform属性进行设置变换

    TransLateTransForm

     代码示例:

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <TextBlock x:Name="tb1" FontSize="72" HorizontalAlignment="Center" VerticalAlignment="Center" Text="变换文字示例"  Foreground="Cyan"></TextBlock>
                <TextBlock x:Name="tbShow" FontSize="72" VerticalAlignment="Center" HorizontalAlignment="Center" Text="变换文字示例"  Foreground="Cyan">
                    <TextBlock.RenderTransform>
                        <TranslateTransform X="-2" Y="3"></TranslateTransform>
                    </TextBlock.RenderTransform>
                </TextBlock>
            </Grid>

     从上面xaml文件中可以看到定义的移动位置,X表示在x轴上移动多少,此值为正表示向右移动相应位置,为负表示向左移动相应位置;Y表示在Y轴上移动多少,同理Y值为正向上移动相应位置,为负向下移动相应位置;效果图见下:

     

    ScaleTransform

    代码示例:

     <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <TextBlock x:Name="tbShow"  VerticalAlignment="Center" HorizontalAlignment="Center" Text="变换文字示例"  Foreground="Cyan">
                    <TextBlock.RenderTransform>
                        <ScaleTransform ScaleX="2"  ScaleY="2" CenterX="20" CenterY="30" ></ScaleTransform>
                    </TextBlock.RenderTransform>
                </TextBlock>
            </Grid>

     在这里ScaleTransform设置了四个属性,CenterX 和CenterY表示设置变换的点这里的点坐标是(20 30),ScaleX和ScaleY表示的是在X和Y方向上缩放的倍数,这里可以是小数,当设置的数值大于0时会实现缩放功能,但是等于0的时候文字就消失不见了,都小于0的时候效果是文字进行左右和上下倒置

    上面代码的效果 ,使textblock元素高和宽都增大两倍

     

     当我们把ScaleX和ScaleY都改为负值的时候会是这样子

     

    RotateTransform

    代码示例:

     <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <TextBlock x:Name="tb1" FontSize="72" HorizontalAlignment="Center" VerticalAlignment="Center" Text="变换文字示例1"  Foreground="Cyan">
                    <TextBlock.RenderTransform>
                       <RotateTransform Angle="30" CenterX="1" CenterY="1"></RotateTransform>
                    </TextBlock.RenderTransform>
                </TextBlock>
                <TextBlock x:Name="tbShow" FontSize="72" VerticalAlignment="Center" HorizontalAlignment="Center" Text="变换文字示例2"  Foreground="Cyan">
                    <TextBlock.RenderTransform>
                       <RotateTransform Angle="-30" CenterX="1" CenterY="1"></RotateTransform>
                    </TextBlock.RenderTransform>
                </TextBlock>
            </Grid>

     这里的CenterX 和CenterY也表示定义的变换点,Angle表示定义的角度,上面可以看出角度是分正负值的,当为0时也就是没角度,无任何变换,实现的效果:

     

    SkewTransform

     代码示例:

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <TextBlock x:Name="tbShow" FontSize="72" VerticalAlignment="Center" HorizontalAlignment="Center" Text="变换文字示例"  Foreground="Cyan">
                    <TextBlock.RenderTransform>
                        <SkewTransform AngleX="20" AngleY="20"></SkewTransform>
                    </TextBlock.RenderTransform>
                </TextBlock>
            </Grid>
    SkewTransform 表示基于某个变换点,在X轴和Y轴上的倾斜角度,上面设置的两个属性AngleX表示在X轴上的倾斜角度,AngleY表示在Y轴上的倾斜角度,变换点默认为(0 0);就像上一个示例代码一样,角度也是分正负值的,等于0时没有任何角度变换,效果图:

     

    话说这个还是比较实用的;

    你会发现基于某个点的变换,他们都会跑出Grid内容区域;好了写到这里下一篇继续···

                                                                                                                                                                              跬步积千里

    作者:神舟龙
        
     

    新建的wp開發者群:42182428 

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    GB/T 29311-2020 电气绝缘材料和系统 交流电压耐久性评定
    GB/T 36290.1-2020 电站流程图 第1部分:制图规范
    GB 50646-2020 特种气体系统工程技术标准
    T/CECS 644-2019 恒温恒湿实验室工程技术规程
    GB/T 38808-2020 建筑结构用波纹腹板型钢
    DL/T 1848-2018 220kV和110kV变压器中性点过电压保护技术规范
    这一周发生的事,也该醒醒了!
    pytest-09(conftest.py的层级作用)
    pytest-08(fixtrue的详细使用)
    pytest-07(使用装饰器fixtrue中的autose=True)
  • 原文地址:https://www.cnblogs.com/shenzhoulong/p/2458217.html
Copyright © 2011-2022 走看看