WP8 方向改变动画

2024-04-22

向 Windows Phone 8 应用程序添加方向更改动画的最简单方法是什么?我对消息、日历等本机应用程序中的东西感兴趣。我一直在寻找一种快速而简单的解决方案,我发现唯一有效的是 NuGet 中的 DynamicOrientionChanges 库,但它在 Windows 上的帧率存在巨大问题电话 8.


您可以使用 Windows.Phone.Toolkit 并处理 OrientationChangedEvent,如下所示:

http://mobileworld.appamundi.com/blogs/andywigley/archive/2010/11/23/windows-phone-7-page-orientation-change-animations.aspx http://mobileworld.appamundi.com/blogs/andywigley/archive/2010/11/23/windows-phone-7-page-orientation-change-animations.aspx

我将在此处复制链接文章的源代码部分,以防页面离线。它包含额外的逻辑来跟踪当前方向来自哪个方向,以便动画与变化相匹配:

public partial class MainPage : PhoneApplicationPage
{
    PageOrientation lastOrientation;

    // Constructor
    public MainPage()
    {
        InitializeComponent();

        this.OrientationChanged += new EventHandler<OrientationChangedEventArgs>(MainPage_OrientationChanged);

        lastOrientation = this.Orientation;
    }

    void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
    {
        PageOrientation newOrientation = e.Orientation;
        Debug.WriteLine("New orientation: " + newOrientation.ToString());

        // Orientations are (clockwise) 'PortraitUp', 'LandscapeRight', 'LandscapeLeft'

        RotateTransition transitionElement = new RotateTransition();

        switch (newOrientation)
        {
            case PageOrientation.Landscape:
            case PageOrientation.LandscapeRight:
                // Come here from PortraitUp (i.e. clockwise) or LandscapeLeft?
                if (lastOrientation == PageOrientation.PortraitUp)
                    transitionElement.Mode = RotateTransitionMode.In90Counterclockwise;
                else
                    transitionElement.Mode = RotateTransitionMode.In180Clockwise;
                break;
            case PageOrientation.LandscapeLeft:
                // Come here from LandscapeRight or PortraitUp?
                if (lastOrientation == PageOrientation.LandscapeRight)
                    transitionElement.Mode = RotateTransitionMode.In180Counterclockwise;
                else
                    transitionElement.Mode = RotateTransitionMode.In90Clockwise;
                break;
            case PageOrientation.Portrait:
            case PageOrientation.PortraitUp:
                // Come here from LandscapeLeft or LandscapeRight?
                if (lastOrientation == PageOrientation.LandscapeLeft)
                    transitionElement.Mode = RotateTransitionMode.In90Counterclockwise;
                else
                    transitionElement.Mode = RotateTransitionMode.In90Clockwise;
                break;
            default:
                break;
        }

        // Execute the transition
        PhoneApplicationPage phoneApplicationPage = (PhoneApplicationPage)(((PhoneApplicationFrame)Application.Current.RootVisual)).Content;
        ITransition transition = transitionElement.GetTransition(phoneApplicationPage);
        transition.Completed += delegate
        {
            transition.Stop();
        };
        transition.Begin();

        lastOrientation = newOrientation;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WP8 方向改变动画 的相关文章

随机推荐

  • Perl 错误,无法使用 Defined(@array)。我怎样才能解决这个问题?

    我收到此错误 gt 无法使用 已定义 array 也许您应该省略已定义 在这行代码上 if defined linkbot nroboton 我怎样才能解决这个问题 defined https perldoc pl functions de
  • Android版VLC编译错误

    当我根据这个编译适用于Android的VLC时page https wiki videolan org AndroidCompile 在步骤 sh 编译 sh 我收到此错误 For an ARMv6 device without FPU e
  • Postgresql初始配置:如何以postgres用户访问?

    安装postgresql后 我尝试了一下 输入createdb mydb 就像文档中写的那样 然后出现以下错误 createdb could not connect to database postgres FATAL role xxx d
  • Dagger 2:无法解析匕首组件的符号

    我想锻炼这个Dagger 2 车载电机 http code tutsplus com tutorials dependency injection with dagger 2 on android cms 23345例子 除了我的 Grad
  • EF6 和 Visual Studio 2017 中的实体框架工具在哪里?

    我正在使用 Visual Studio 2017 和 Entity Framework 6 但在我的一生中 我找不到 EDMX 文件 实体数据工具 模型浏览器或实体设计器 我在这里失去理智了吗 我创建了多个新项目 试图找到这些基于 UI 的
  • 如何使用 Clip-path CSS 属性截取 HTML 节点的屏幕截图? (html2canvas 不适用于此)

    我在用着html2canvas https github com niklasvh html2canvas库来截取 HTML 节点的屏幕截图 但它根本无法识别clip path财产 我尝试在这里复制错误时遇到跨域问题 所以我做了一个jsfi
  • 是否可以在 Arduino 上运行 ZeroMQ

    我想知道是否可以通过 ZeroMQ 与 Arduino 进行通信 我想使用 Arduino 来控制一些设备 并希望将大部分应用程序放在计算机上 为此 如果 Arduino 和控制器可以通过 Zeromq 以及 WiFi 或以太网扩展板进行通
  • 如何在 GNU Make 的定义中使用 ifeq?

    我正在尝试在 Makefile 中的定义内执行 ifeq 但我似乎遇到了一些错误 并且我想知道是否遗漏了某些内容 我有以下 Makefile info start ifeq X Y info DOES not appear 1 endif
  • 从实时数据库获取 json 数据到 Dialogflow 内联编辑器(谷歌助手)

    编程初学者 我正在利用空闲时间从事一个与 Google Assistant 相关的项目 这是我第一次使用 Firebase 实时数据库 不知道如何从那里获取数据 代码下面是 Dialogflow 的内联编辑器中的内容 其中的类别 1 2 和
  • MsSql Compact,两列及以上列的唯一约束

    伙计们 MsSql Compact 是否具有在两个或多个列上创建复合唯一索引 只是约束 而不是主键 的功能 第 1 栏 第 2 栏 1 2 1 2 插入 更新必须生成异常 我没有通过服务器资源管理器的设计器看到此功能 CREATE UNIQ
  • VBA - 使用单元格引用对非空白单元格进行计数

    在 VBA 中 使用 Excel 2016 我尝试计算给定范围内的非空白单元格数量 但仅使用单元格整数引用 我尝试过以下方法 WB Sheets 1 Range Cells 2 X Cells 2 Y Cells SpecialCells
  • 使用 php://input 和 file_put_contents

    我正在接收使用 Ajax 上传到我的 PHP 脚本中的文件 图像 并使用以下命令让它工作 input fopen php input r file put contents image jpg input 显然我会在此操作之前清理输入 我想
  • 按钮图像不显示

    我刚刚学习如何使用 Django 和 HTML 我遇到了这样的问题 我的图像没有显示在按钮上 我不明白错误是什么 如果有人可以帮助我修复它 我将不胜感激
  • Flutter:无法在调试或发布中构建android

    突然我的应用程序无法在调试或发布模式下运行 我在用户界面中添加了一些屏幕 但我没有更改或添加任何包 我不知道到底发生了什么 但我尝试用 Android Studio 中的本地历史记录来逆转我的更改 但也没有发生任何事情 我的输出是 FAIL
  • Swift 编译器错误:“Double”无法转换为 CGFloat

    我刚刚开始学习 Swift 我创建了一个游戏项目并出现了一个模板 我没有对代码做任何事情 我尝试运行该项目 但弹出编译器错误 我将停止教程 因此我的环境可能有问题 或者这本书已经过时了 Swift 编译器错误 Double 无法转换为 CG
  • 将 HTML 转义为 PHP 还是使用 Echo?哪个更好?

    就性能而言 什么会更好 使用 PHP 来回显所有 HTML 输出 这样我就可以在整个文档中添加各种工作代码和变量 或者定期将 HTML 转义为 php 我知道可能存在一些可读性问题 但我并不担心 谢谢大家 实施例1 echo The con
  • 使用 CCTouchDispatcher Cocos2d 2.0 Beta-2 ARC

    我正在使用 cocos2d 2 0 BETA 2 0 最新的 创建一个游戏 我需要在其他班级添加一个操纵杆 所以我在第二堂课上称之为 CCTouchDispatcher 但我不能这样调用 CCTouchDispatcher sharedDi
  • 如何以编程方式在 qml 中渲染 vtk 项目?

    到目前为止 我了解到我们在 QML 中有两个线程 我们的主应用程序线程和我们的 场景图 线程 http doc qt io qt 5 qtquick visualcanvas scenegraph html http doc qt io q
  • 谷歌 reCaptcha 说:无效的请求 cookie

    这是我第一次在我的网站上使用 recapcha 我正在使用 PHP API 来验证验证码 它一直说invalid request cookie 我在不同的论坛上发现 www example com 与 example com 不同 因此我重
  • WP8 方向改变动画

    向 Windows Phone 8 应用程序添加方向更改动画的最简单方法是什么 我对消息 日历等本机应用程序中的东西感兴趣 我一直在寻找一种快速而简单的解决方案 我发现唯一有效的是 NuGet 中的 DynamicOrientionChan