WPF实现Android菜单动画

WPF开发者QQ群: 340500857 

欢迎转发、分享、点赞,谢谢大家~。  

效果预览:

一、MainWindow.xaml代码如下:

<Grid><Grid.Background><ImageBrush ImageSource="background.png"/></Grid.Background><Border Width="400" Height="235" Background="#F9F7F9"VerticalAlignment="Top" Margin="10,0" SnapsToDevicePixels="True"><UniformGrid Columns="5" VerticalAlignment="Bottom"><Viewport3D Height="80" Width="80"><Viewport3D.Camera><OrthographicCamera LookDirection="0,0,-100" Position="0,0,100" UpDirection="0,1,0"/></Viewport3D.Camera><Viewport3D.Children><ModelVisual3D><ModelVisual3D.Content><AmbientLight Color="White"/></ModelVisual3D.Content></ModelVisual3D><ContainerUIElement3D><ContainerUIElement3D.Transform><RotateTransform3D><RotateTransform3D.Rotation><AxisAngleRotation3D Angle="0" Axis="1 0 0"/></RotateTransform3D.Rotation></RotateTransform3D></ContainerUIElement3D.Transform><Viewport2DVisual3D><Viewport2DVisual3D.Material><DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/></Viewport2DVisual3D.Material><Viewport2DVisual3D.Geometry><MeshGeometry3D Positions="-1,1,1    -1,-1,1   1,-1,1    1,1,1"TextureCoordinates="0,0   0,1     1,1  1,0"TriangleIndices="0 1 2 0 2 3"/></Viewport2DVisual3D.Geometry><Border Background="#5B31AD" Height="110" Width="110" CornerRadius="0,0,0,30"><Path Data="{StaticResource PathBuildingRegular}" Fill="#FFFF"Stretch="Fill"  Width="40" Height="40"/></Border></Viewport2DVisual3D></ContainerUIElement3D></Viewport3D.Children></Viewport3D><Viewport3D Height="80" Width="80"><Viewport3D.Camera><OrthographicCamera LookDirection="0,0,-100" Position="0,0,100" UpDirection="0,1,0"/></Viewport3D.Camera><Viewport3D.Children><ModelVisual3D><ModelVisual3D.Content><AmbientLight Color="White"/></ModelVisual3D.Content></ModelVisual3D><ContainerUIElement3D><ContainerUIElement3D.Transform><RotateTransform3D><RotateTransform3D.Rotation><AxisAngleRotation3D Angle="0" Axis="1 0 0"/></RotateTransform3D.Rotation></RotateTransform3D></ContainerUIElement3D.Transform><Viewport2DVisual3D><Viewport2DVisual3D.Material><DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/></Viewport2DVisual3D.Material><Viewport2DVisual3D.Geometry><MeshGeometry3D Positions="-1,1,1    -1,-1,1   1,-1,1    1,1,1"TextureCoordinates="0,0   0,1     1,1  1,0"TriangleIndices="0 1 2 0 2 3"/></Viewport2DVisual3D.Geometry><Border Background="#8E1FA4" Height="110" Width="110"><Path Data="{StaticResource PathAlarmMD}" Fill="#FFFF"Stretch="Fill"  Width="40" Height="40"/></Border></Viewport2DVisual3D></ContainerUIElement3D></Viewport3D.Children></Viewport3D><Viewport3D Height="80" Width="80"><Viewport3D.Camera><OrthographicCamera LookDirection="0,0,-100" Position="0,0,100" UpDirection="0,1,0"/></Viewport3D.Camera><Viewport3D.Children><ModelVisual3D><ModelVisual3D.Content><AmbientLight Color="White"/></ModelVisual3D.Content></ModelVisual3D><ContainerUIElement3D><ContainerUIElement3D.Transform><RotateTransform3D><RotateTransform3D.Rotation><AxisAngleRotation3D Angle="0" Axis="1 0 0"/></RotateTransform3D.Rotation></RotateTransform3D></ContainerUIElement3D.Transform><Viewport2DVisual3D><Viewport2DVisual3D.Material><DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/></Viewport2DVisual3D.Material><Viewport2DVisual3D.Geometry><MeshGeometry3D Positions="-1,1,1    -1,-1,1   1,-1,1    1,1,1"TextureCoordinates="0,0   0,1     1,1  1,0"TriangleIndices="0 1 2 0 2 3"/></Viewport2DVisual3D.Geometry><Border Background="#3A7DFE" Height="110" Width="110"><Path Data="{StaticResource PathFriend}" Fill="#FFFF"Stretch="Fill"  Width="40" Height="30"/></Border></Viewport2DVisual3D></ContainerUIElement3D></Viewport3D.Children></Viewport3D><Viewport3D Height="80" Width="80" x:Name="viewport3DBus" MouseEnter="viewport3DBus_MouseEnter"><Viewport3D.Camera><OrthographicCamera LookDirection="0,0,-100" Position="0,0,100" UpDirection="0,1,0"/></Viewport3D.Camera><Viewport3D.Children><ModelVisual3D><ModelVisual3D.Content><AmbientLight Color="White"/></ModelVisual3D.Content></ModelVisual3D><ContainerUIElement3D><ContainerUIElement3D.Transform><RotateTransform3D><RotateTransform3D.Rotation><AxisAngleRotation3D x:Name="axis3dBus" Angle="0" Axis="1 0 0"/></RotateTransform3D.Rotation></RotateTransform3D></ContainerUIElement3D.Transform><Viewport2DVisual3D><Viewport2DVisual3D.Material><DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/></Viewport2DVisual3D.Material><Viewport2DVisual3D.Geometry><MeshGeometry3D Positions="-1,1,1    -1,-1,1   1,-1,1    1,1,1"TextureCoordinates="0,0   0,1     1,1  1,0"TriangleIndices="0 1 2 0 2 3"/></Viewport2DVisual3D.Geometry><Border Background="#5EECA6" Height="110" Width="110"><Path Data="{StaticResource PathBus}" Fill="#FFFF"Stretch="Fill"  Width="35" Height="40"/></Border></Viewport2DVisual3D><Viewport2DVisual3D><Viewport2DVisual3D.Material><DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/></Viewport2DVisual3D.Material><Viewport2DVisual3D.Geometry><MeshGeometry3D Positions="-1,1,1  1,1,1   1,1,-1   -1,1,-1"TextureCoordinates="0,0   0,1   1,1  1,0"TriangleIndices="0 1 2 0 2 3"/></Viewport2DVisual3D.Geometry><Border Background="#41A545" Height="110" Width="110" RenderTransformOrigin="0.5,0.5"><Border.RenderTransform><TransformGroup><RotateTransform Angle="90"/></TransformGroup></Border.RenderTransform><StackPanel VerticalAlignment="Center"><Path Data="{StaticResource PathBus}" Fill="#FFFF"Stretch="Fill"  Width="35" Height="40"/><TextBlock Text="Bus" HorizontalAlignment="Center" FontSize="14" Foreground="White"/></StackPanel></Border></Viewport2DVisual3D></ContainerUIElement3D></Viewport3D.Children></Viewport3D>                    </UniformGrid></Border><Border Width="450" BorderBrush="#181618" BorderThickness="25,0,25,25" Height="260"CornerRadius="0,0,50,50" Background="{x:Null}"VerticalAlignment="Top" Margin="10,0" SnapsToDevicePixels="True"><Border.Effect><DropShadowEffect Color="White" BlurRadius="10" Direction="300" ShadowDepth="0" /></Border.Effect></Border><StackPanel><TextBlock Text="微信号公众号:WPFDevelopers" HorizontalAlignment="Center"VerticalAlignment="Top" Margin="0,20" FontSize="20" FontWeight="Black"/><TextBlock Text="源码获取关注公众号后输入:3DBar 即可获取" HorizontalAlignment="Center"VerticalAlignment="Top" Margin="0,20" FontSize="14" FontWeight="Black"/></StackPanel>        </Grid>

二、MainWindow.xaml.cs代码如下:

DoubleAnimation animation = null;
private void viewport3DBus_MouseEnter(object sender, MouseEventArgs e){if (animation != null) return;animation = new DoubleAnimation{Duration = new Duration(TimeSpan.FromSeconds(1.5)),From = 0,To = 90,EasingFunction = new BackEase { EasingMode = EasingMode.EaseInOut },};animation.Completed += (s, e1) =>{animation = null;};axis3dBus.BeginAnimation(AxisAngleRotation3D.AngleProperty, animation);}

源码获取关注微信公众号输入:“3DBar” 即可获取源码。

WPF开发者QQ群: 340500857 

blogs: https://www.cnblogs.com/yanjinhua

Github:https://github.com/yanjinhuagood

出处:https://www.cnblogs.com/yanjinhua

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

转载请著名作者 出处 https://github.com/yanjinhuagood

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/302543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序框图计算机算法语言应用,数学之算法与程序框图

原标题&#xff1a;数学之算法与程序框图1、算法的定义&#xff1a;广义的算法是指完成某项工作的方法和步骤&#xff0c;现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤&#xff0c;这些程序或步骤必须是明确和有效的&#xff0c;而且能够在有限步之内完成。2…

arcgis批量处理nc文件_气象数据处理——nc文件

数据说明NetCDF(network Common Data Form)网络通用数据格式是一种面向数组型并适于网络共享的数据的描述和编码标准。目前&#xff0c;NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作 NetCDF 数据集。NetCDF全…

一千个不用 Null 的理由

全世界有3.14 % 的人已经关注了数据与算法之美港真&#xff0c;Null 貌似在哪里都是个头疼的问题&#xff0c;比如 Java 里让人头疼的 NullPointerException&#xff0c;为了避免猝不及防的空指针异常&#xff0c;千百年来程序猿们不得不在代码里小心翼翼的各种 if 判断&#x…

快速打造一个MINI自动发布系统

前情提要&#xff1a;因为项目特点&#xff0c;需要在自己的服务器上集成测试&#xff0c;而不是用github的DevOpt体系&#xff1b;再有就是服务器是windows的&#xff1b;项目仓库在github上&#xff1b;并且项目是asp.net core的项目&#xff1b;开发人员一枚。以前的做法就是…

话里话外:ERP与PDM、MES的关系区别是什么

博主推荐延展咨询资深顾问梁云文章 ERP、PDM、MES这几个名词既会以独立的管理理念存在&#xff0c;也会在不同的管理软件中存在&#xff0c;而管理理念和管理软件是不同的。本文将抛开软件本身&#xff0c;从管理理念和原理的角度入手&#xff0c;分析上述三个概念之间的关系。…

考试必错规则:如果你觉得题目很简单,代表你肯定错了

全世界有3.14 % 的人已经关注了数据与算法之美1曾经的考试生涯以前考试的时候&#xff0c;老师经过我旁边我都会盖住答案&#xff0c;因为害怕老师看到我那些愚蠢的答案……&#xff08;via屌絲打分蜻蜓隊長&#xff09;2当我中学第一次进入KTV时&#xff0c;我就知道我注定属于…

aspnetcore 应用 接入Keycloak快速上手指南

登录及身份认证是现代web应用最基本的功能之一&#xff0c;对于企业内部的系统&#xff0c;多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理&#xff0c;提升用户同时使用多个系统的体验&#xff0c;Keycloak正是为此种场景而生。本文将简明的介绍Keyc…

隐藏在数学中的哲理,令人回味无穷

全世界有3.14 % 的人已经关注了数据与算法之美人们在欣赏优美的数、式和数学图形时&#xff0c;将其与现实生活联系&#xff0c;引入到人们的精神世界中&#xff0c;产生丰富的联想和创造&#xff0c;反映出人们崇高的思想境界和要求&#xff0c;因而产生了风格独特、内涵深刻、…

无源的nfc加传感_基于ON Semiconductor SPS无源温度标签,应用于冷链运输的 UHF 标签读取器方案...

冷链&#xff0c;即冷冻冷藏供应链的简称&#xff0c;泛指冷藏冷冻类食品从原材料供应物流、食品工厂内生产物流、贮藏运输物流至贩卖销售物流等&#xff0c;各个环节中始终处于规定的低温环境下&#xff0c;以保证食品质量&#xff0c;减少食品损耗的一项系统工程 。随着科学技…

前端老弟第一次写后端,崩了!

幽默轻松小知识&#xff0c;一起来看看老弟第一次写的后端代码&#xff0c;你觉得如何&#xff1f;大家好&#xff0c;我是鱼皮&#xff0c;今天分享我的老弟第一次写后端代码时出现的囧事&#xff0c;希望大家引以为戒。孽起我的老弟小阿巴&#xff0c;目前大一&#xff0c;自…

Windows Phone 7 系统主题颜色RGB和Hex值

Windows Phone 主题是背景色与个性色的组合。背景色是背景的颜色&#xff0c;个性色是应用于控件和其他可视元素的颜色。有两种背景选项可供使用&#xff08;深色和浅色&#xff09;&#xff0c;另外共有 10 种标准个性色可用于您的应用程序。 下表列出了 10 种标准个性色及其以…

小米8对一加6打开软件速度测试,买一加6还是小米8?小米8和一加6区别对比

买一加6还是小米8&#xff1f;据相关媒体报道&#xff0c;继一加6后&#xff0c;小米前些天也推出了同样搭载骁龙845处理器的最新旗舰——“小米8”。值得一提的是&#xff0c;小米8还被官方称为“8周年的代表之作”&#xff01;那么&#xff0c;一加6和小米8哪个更好一些&…

面试算法工程师时,我居然被化学专业转行的老哥血虐了

全世界有3.14 % 的人已经关注了数据与算法之美我是小A&#xff0c;一个没能当成算法工程师的菜鸡Java工程师&#xff0c;内心却等着上AI这趟车。去年正是人工智能火热的时候&#xff0c;看着各种高薪招聘&#xff0c;我沉寂很久的内心也火热起来了。但是想归想&#xff0c;我内…

编写一个程序,将一串字符倒序存放后输出。

源代码&#xff1a; 1 #include<iostream>2 using namespace std;3 int main()4 {5 char *p;int i,n;6 cout<<"请输入字符串的长度n";cin>>n;7 pnew char[n];8 for(i0;i<n;i)9 cin>>p[i]; 10 for(i0;i<n/…

超好看的科学科普书,孩子大人都可以看!

科学就是高不可攀的吗&#xff1f;科学探究就是神秘而枯燥的吗&#xff1f;科学教育就是“板着面孔”的吗&#xff1f;才不是呢&#xff01;小木认为科学研究是一个充满快乐的过程。而且&#xff0c;科学是无处不在的&#xff0c;日常生活中的点点滴滴也蕴含着科学原理。小木关…

WPF 制作便携小空调

今天看到群里一个小页面挺有意思的&#xff0c;就是这个&#xff1a;https://ac.yunyoujun.cn/于是想着用wpf也模仿一下嘿嘿&#xff0c;为了方便&#xff0c;也顾不上什么代码结构了。。。看看效果吧&#xff1a;代码不多&#xff0c;只有一个窗口&#xff0c;下面就直接看看代…

ML.NET 示例:将ML.NET模型导出到ONNX

在这个示例中&#xff0c;您将看到如何使用ML.NET来训练回归模型&#xff0c;然后将该模型转换为ONNX格式。问题开放式神经网络交换即ONNX是一种表示深度学习模型的开放格式。使用ONNX&#xff0c;开发人员可以在最先进的工具之间移动模型&#xff0c;并选择最适合他们的组合。…

别写代码了!行吗?

全世界有3.14 % 的人已经关注了数据与算法之美01刚才等红绿灯的时候&#xff0c;天开始下雨了。这时候旁边的程序员首先开口说&#xff1a;“下雨了。”大概过了5秒钟&#xff0c;其他人&#xff1a;对哦&#xff0c;有点下雨了。其实&#xff0c;这说的是程序员头秃的故事。02…

dma接收双缓存 stm32_「STM32学习笔记」USART 新特性

之前的学习笔记“SPI不够用&#xff1f;USART来帮忙”一文中介绍了用如何把USART当做SPI来用的方法。此外&#xff0c;ST的USART还有很多新特性&#xff0c;没准有你不知道的。在此&#xff0c;我们整理出来以下串口新特性&#xff0c;供大家参考。支持RXD和TXD管脚互换很多时候…

为什么数学叫“数学”?

全世界有3.14 % 的人已经关注了数据与算法之美“数学”一词是来自希腊语&#xff0c;它意味着某种“已学会或被理解的东西”或“已获得的知识”&#xff0c;甚至意味着“可获的东西”&#xff1b;“可学会的东西”&#xff0c;即“通过学习可获得的知识”&#xff0c;数学名称的…