Windows 8实用窍门系列:10.Windows 8的基本变换和矩阵变换以及AppBar应用程序栏

  在Windows 8中有几种基本变换和矩阵变换和Silverlight中的使用方法都是一样。

  包括: RotateTransform:旋转变换

      ScaleTransform:缩放变换

      SkewTransform:倾斜变换

      TranslateTransform:移动变换

      TransformGroup:变换组

      MatrixTransform:矩阵变换

  这些变换的意义和使用都可以看我之前写过的两篇文章:

  Silverlight实用窍门系列:53.Silverlight中的5种基本变换RotateTransform、ScaleTransform、SkewTransform、TranslateTransform、TransformGroup

  Silverlight实用窍门系列:54.详解Silverlight中的矩阵变换MatrixTransform,实现其余各种变换

  AppBar应用程序栏是在Windows 8程序在右击程序下方或者手指从下往上滑动弹出的一个消息栏。在这个栏里可以做一些自定义的操作如:卸载程序,添加信息,搜索等操作。

  基本变换和矩阵变换

       <!--RotateTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="48,49,0,0" Name="image11"
        Stretch="Fill"  Width="50" Source="iPhone_001.png"  Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="48,49,0,0" Name="image1"
        Stretch="Fill"  Width="50" Source="iPhone_001.png" >
            <Image.RenderTransform>
                <RotateTransform CenterX="0" CenterY="0" Angle="45"></RotateTransform>
            </Image.RenderTransform>
        </Image>

        <!--ScaleTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="139,49,0,0" Name="image21"
        Stretch="Fill" Width="50" Source="iPhone_002.png"  Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" 
               Margin="139,49,0,0" Name="image2"
        Stretch="Fill" Width="50" Source="iPhone_002.png">
            <Image.RenderTransform>
                <ScaleTransform CenterX="0" CenterY="0" ScaleX="0.6" ScaleY="0.6"></ScaleTransform>
            </Image.RenderTransform>
        </Image>

        <!--SkewTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="226,49,0,0" Name="image31"
        Stretch="Fill" Width="50" Source="iPhone_003.png" Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" 
               Margin="226,49,0,0" Name="image3"
        Stretch="Fill" Width="50" Source="iPhone_003.png" >
            <Image.RenderTransform>
                <SkewTransform CenterX="0" CenterY="0" AngleX="45" AngleY="0"></SkewTransform>
            </Image.RenderTransform>
        </Image>

        <!--TranslateTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="331,49,0,0" Name="image41"
        Stretch="Fill" Width="50" Source="iPhone_004.png" Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="331,49,0,0" Name="image4"
        Stretch="Fill" Width="50" Source="iPhone_004.png" >
            <Image.RenderTransform>
                <TranslateTransform X="10" Y="50"></TranslateTransform>
            </Image.RenderTransform>
        </Image>

        <!--TransformGroup变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="426,49,0,0" Name="image51"
        Stretch="Fill" Width="50" Source="iPhone_005.png" Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="426,49,0,0" Name="image5"
        Stretch="Fill" Width="50" Source="iPhone_005.png" >
            <Image.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleY="-1"/>
                    <TranslateTransform Y="100"/>
                </TransformGroup>
            </Image.RenderTransform>
        </Image>


        <!--RotateTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="48,249,0,0" Name="image1166"
                Stretch="Fill"  Width="50" Source="iPhone_001.png"  Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="48,249,0,0" Name="image166"
                Stretch="Fill"  Width="50" Source="iPhone_001.png" >
            <Image.RenderTransform>
                <MatrixTransform Matrix="0 1 -1 0 0 0"></MatrixTransform>
            </Image.RenderTransform>
        </Image>

        <!--ScaleTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="139,249,0,0" Name="image2166"
                Stretch="Fill" Width="50" Source="iPhone_002.png"  Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="139,249,0,0" Name="image266"
                Stretch="Fill" Width="50" Source="iPhone_002.png">
            <Image.RenderTransform>
                <MatrixTransform Matrix="0.6 0 0 0.6 0 0"></MatrixTransform>
            </Image.RenderTransform>
        </Image>

        <!--SkewTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="226,249,0,0" Name="image3166"
                Stretch="Fill" Width="50" Source="iPhone_003.png" Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="226,249,0,0" Name="image366"
                Stretch="Fill" Width="50" Source="iPhone_003.png" >
            <Image.RenderTransform>
                <MatrixTransform Matrix="1 0 1 1 0 0"></MatrixTransform>
            </Image.RenderTransform>
        </Image>

        <!--TranslateTransform变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="331,249,0,0" Name="image4166"
               Stretch="Fill" Width="50" Source="iPhone_004.png" Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" 
               Margin="331,249,0,0" Name="image466"
               Stretch="Fill" Width="50" Source="iPhone_004.png" >
            <Image.RenderTransform>
                <MatrixTransform Matrix="1 0 0 1 10 50"></MatrixTransform>
            </Image.RenderTransform>
        </Image>

        <!--TransformGroup变换-->
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top"
               Margin="426,249,0,0" Name="image5166"
               Stretch="Fill" Width="50" Source="iPhone_005.png" Opacity=".3"/>
        <Image Height="50" HorizontalAlignment="Left" VerticalAlignment="Top" 
               Margin="426,249,0,0" Name="image566"
               Stretch="Fill" Width="50" Source="iPhone_005.png" >
            <Image.RenderTransform>
                <MatrixTransform Matrix="1 0 0 -1 0 0"></MatrixTransform>
            </Image.RenderTransform>
        </Image>
        <TextBlock HorizontalAlignment="Left" Margin="10,121,0,0" 
                   TextWrapping="Wrap" Text="采用多种方式对图片进行旋转"
                   VerticalAlignment="Top" Height="16" Width="206"/>
        <TextBlock HorizontalAlignment="Left" Margin="10,321,0,0" 
                   TextWrapping="Wrap" Text="采用MatrixTransform方式对图片进行旋转"
                   VerticalAlignment="Top" Height="16" Width="206"/>
        <TextBlock HorizontalAlignment="Left" Margin="550,271,0,0"
                   TextWrapping="Wrap" Text="" Name="tbText"
                   VerticalAlignment="Top" Width="232"/>

  AppBar代码如下:

    <Page.BottomAppBar>
        <AppBar>
            <Grid Background="Green" HorizontalAlignment="Left" Width="1355">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="425*">
                    </ColumnDefinition>
                    <ColumnDefinition Width="248*"/>
                </Grid.ColumnDefinitions>
                <StackPanel Orientation="Horizontal" Grid.Column="0" HorizontalAlignment="Left">
                    <Button x:Name="appBarAdd"  Content="添加" Click="appBarAdd_Click"/>
                    <Button x:Name="appBarDelete"  Content="删除" Click="appBarDelete_Click"/>
                </StackPanel>
                <StackPanel Orientation="Horizontal" Grid.Column="1" HorizontalAlignment="Right">
                    <Button x:Name="AppBarMore" Content="更多" Click="AppBarMore_Click"/>
                </StackPanel>
            </Grid>
        </AppBar>
    </Page.BottomAppBar>
        private void appBarAdd_Click(object sender, RoutedEventArgs e)
        {
            this.tbText.Text = "点击了添加按钮!";
        }

        private void appBarDelete_Click(object sender, RoutedEventArgs e)
        {
            this.tbText.Text = "点击了删除按钮!";
        }

        private void AppBarMore_Click(object sender, RoutedEventArgs e)
        {
            this.tbText.Text = "点击了更多按钮!";
        }

  最后效果如下两图,并且如需源码请点击 Win8Control.rar 下载。

 

posted @ 2012-12-03 11:39  程兴亮  阅读(1144)  评论(0编辑  收藏