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 下载。



本文转自程兴亮博客园博客,原文链接:http://www.cnblogs.com/chengxingliang/archive/2012/12/03/2797501.html,如需转载请自行联系原作者


 

相关文章
|
1月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
30天前
|
Unix Linux Ruby
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
|
1月前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
60 3
|
1月前
|
PHP Windows
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
|
27天前
|
vr&ar C# 图形学
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
32 0
|
27天前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
32 0
|
27天前
|
C# Windows 监控
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
63 0
|
27天前
|
数据库 Windows
超详细步骤解析:从零开始,手把手教你使用 Visual Studio 打造你的第一个 Windows Forms 应用程序,菜鸟也能轻松上手的编程入门指南来了!
【8月更文挑战第31天】创建你的第一个Windows Forms (WinForms) 应用程序是一个激动人心的过程,尤其适合编程新手。本指南将带你逐步完成一个简单WinForms 应用的开发。首先,在Visual Studio 中创建一个“Windows Forms App (.NET)”项目,命名为“我的第一个WinForms 应用”。接着,在空白窗体中添加一个按钮和一个标签控件,并设置按钮文本为“点击我”。然后,为按钮添加点击事件处理程序`button1_Click`,实现点击按钮后更新标签文本为“你好,你刚刚点击了按钮!”。
94 0
|
1月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
1月前
|
Python Windows 内存技术
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?