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

WPF实现Android菜单动画相关推荐

  1. android菜单动画,利用 android studio 制作一个菜单动画

    目的:利用Android studio 编一个菜单动画,以便初步了解Android studio的基本操作,初步了解Android开发的思考方法. 技术: 1.RelativeLayout. 2.sr ...

  2. Android m 自定义下拉菜单,Android实现动画效果的自定义下拉菜单功能

    我们在购物APP里面设置收货地址时,都会有让我们选择省份及城市的下拉菜单项.今天我将使用Android原生的 Spinner 控件来实现一个自定义的下拉菜单功能,并配上一个透明渐变动画效果. 要实现的 ...

  3. .NET CORE(C#) WPF 值得推荐的动画菜单设计

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF 值得推荐的动画菜单设计 阅读导航 本文背景 代码实现 本文 ...

  4. android rotate 动画,Android RotateAnimation详解

    RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点.x轴为0度,顺时针方向旋转一定的角度. 1.RotateAnimation(fromDegrees, toDegrees) [默 ...

  5. Kotlin 仿微信长按列表弹出菜单(动画)

    一.测试 实现: 二.项目: 仿微信长按列表弹出菜单代码,MainActivity.kt class MainActivity : AppCompatActivity(), AdapterView.O ...

  6. Android自定义动画专题二

    android自定义动画专题二 在上篇文章中给大家介绍了android自定义动画的第一种表现形式:view的绘制:不过这只是一种单纯利用自定义控件绘制的方式去实现:这篇文章会给大家演示如何通过自定义控 ...

  7. android 自定义loading,Android自定义动画-StarLoadingView

    今天来分享第二个自定义loading的动画,起了个名字叫 蹦跶的星星 ,还是老规矩先介绍,后上图. 实现效果在最后,GIF有点大,手机流量慎重. 介绍 首先声明做这个动画的初衷是为了学习和分享,所以从 ...

  8. android 三维动画效果,9款令人惊叹的HTML5 3D动画应用

    原标题:9款令人惊叹的HTML5 3D动画应用 之前我们已经向大家分享了很多HTML5动画应用了,大部分都非常炫酷,也有一小部分是很实用的.今天我们要向各位HTML5动画爱好者介绍更多的HTML5 3 ...

  9. 【学习笔记】Android视图动画学习

    2019独角兽企业重金招聘Python工程师标准>>> 1.Android View动画框架 Animation框架定义了透明度.旋转.缩放和位移几种常见的动画. 实现原理:每次绘制 ...

最新文章

  1. hibernate-session中的方法
  2. [译]ES6新特性:八进制和二进制整数字面量
  3. unordered_map的使用特性
  4. HTTP详解-工作原理
  5. Luogu P1031 均分纸牌(贪心)
  6. sharepoint 概念及认证方式介绍
  7. spring 使用XML配置开发Spring AOP
  8. python-数字数据类型-整数类型-浮点数类型-数据类型间的转换
  9. LeetCode 187. 重复的DNA序列
  10. java 浅堆 深堆_JVM中的一个小知识点:深堆和浅堆的概念
  11. 【Redis】Redis 替代方案
  12. Mysql登录时出现Access denied for user ‘root‘@‘localhost‘ (using password YES)无法打开的解决方法
  13. eXosip认证头域authentication
  14. mysql锘縖_根据中文字符串查询拼音声母
  15. 未明学院:大学四年应当如何度过,才算不辜负?
  16. GRLDR外部MENU.LST调用GRLDR内部菜单
  17. Gartner:2017年十大科技趋势盘点
  18. 【51单片机】 利用定时器产生生日快乐歌
  19. Android Room 数据库详解
  20. Jenkins Mac本地环境搭建

热门文章

  1. C++ Exercises(十五)--排序算法的简单实现
  2. decode 大于比较 小于_6 燃气输配系统6.3 压力不大于1.6Mpa的室外燃气管道城镇燃气设计规范 GB500282006(2020修订版)...
  3. 【APP接口开发】常用HTTP响应头状态码详解
  4. js 控制超出字数显示省略号
  5. MapReduce 2 中一些基础数据类型
  6. SpringMVC4零配置--web.xml
  7. POJ 2240 ZOJ 1082 Arbitrage 最短路,c++ stl pass g++ tle 难度:0
  8. 【慢慢学算法】:查找第k小数
  9. C# 读写ACCESS的OLE对象,演示图片与长文件的读写
  10. 更新!在线状态和用户的共存模式保持一致