Windows 8实用窍门系列:10.Windows 8的基本变换和矩阵变换以及AppBar应用程序栏
在Windows 8中有几种基本变换和矩阵变换和Silverlight中的使用方法都是一样。
包括: RotateTransform:旋转变换
ScaleTransform:缩放变换
SkewTransform:倾斜变换
TranslateTransform:移动变换
TransformGroup:变换组
MatrixTransform:矩阵变换
这些变换的意义和使用都可以看我之前写过的两篇文章:
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 下载。