用过Surface dial的童鞋们都很熟悉,当使用Dial的时候,那个圆形菜单很漂亮,那么我们在普通的uwp中是否也可以实现吗?

答案是肯定的。

其实这是来源于GayHub的一个开源项目,做的很不错。

https://github.com/CatalystCode/radial-menu

下面就一步一步来操作演示下:

1、新建一个项目,打开Nuget,搜索“RadialMenuControl”

安装最新的即可,或者使用命令行

PM> Install-Package RadialMenuControl

在xaml中引用

    xmlns:userControl="using:RadialMenuControl.UserControl"
xmlns:component="using:RadialMenuControl.Components"

接下来就可以设计菜单了。

注意在圆形菜单外,加一层   Floating   包裹以下,否则圆形菜单位置是固定的,无法移动。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<userControl:Floating IsBoundByScreen="True">
<userControl:RadialMenu
x:Name="MyRadialMenu"
InnerNormalColor="GreenYellow"
InnerHoverColor="Yellow"
InnerTappedColor="Red"
InnerReleasedColor="Azure"
OuterDisabledColor="Orange"
OuterHoverColor="Red"
OuterTappedColor="Azure"
OuterNormalColor="OrangeRed"
Diameter="300"
StartAngle="-36"
CenterButtonForeground="Blue"
CenterButtonFontSize="30"
CenterButtonIcon="🍩">
<userControl:RadialMenu.Buttons>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Submenu V" Type="Simple" Tapped="Submenu_Tapped">
<component:RadialMenuButton.Submenu>
<userControl:RadialMenu x:Name="MyRadialSubmenu">
<userControl:RadialMenu.Buttons>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="New" Type="Simple"/>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Open" Type="Simple"/>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Save" Type="Simple"/>
</userControl:RadialMenu.Buttons>
</userControl:RadialMenu>
</component:RadialMenuButton.Submenu>
</component:RadialMenuButton>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Meter V" Type="Simple"/>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Toggle V" Type="Toggle"/>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Radio V1" Type="Radio"/>
<component:RadialMenuButton Icon="" IconFontFamily="Segoe MDL2 Assets" Label="Radio V2" Type="Radio"/>
</userControl:RadialMenu.Buttons>
</userControl:RadialMenu>
</userControl:Floating> </Grid>

那个StartAngle可以不设置,也可以根据实际情况调节。

CenterButtonIcon  这个图标还没弄明白需要什么字体,我用“http://modernicons.io/segoe-mdl2/cheatsheet/” 不起作用的。

component:RadialMenuButton

这个类型可以指定她的Type,Simple就是原始的,Toggle就是和开关一样的,Radio就是单选咯,Custom自定义。

其他的也没啥好说的,可以自己看xaml代码即可

下面是我的效果截图

我做的示例代码:

https://github.com/hupo376787/RadialMenu

UWP 圆形菜单的更多相关文章

  1. Android学习笔记之如何使用圆形菜单实现旋转效果...

    PS:最近忙于项目的开发,一直都没有去写博客,是时候整理整理自己在其中学到的东西了... 学习内容: 1.使用圆形菜单并实现旋转效果..     Android的圆形菜单我也是最近才接触到,由于在界面 ...

  2. Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单

    原文:Android 打造炫目的圆形菜单 秒秒钟高仿建行圆形菜单 转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43131133, ...

  3. Android_高仿建行圆形菜单

    转:http://blog.csdn.net/lmj623565791/article/details/43131133 1.概述 今天打开建行看存款,一看伤心欲绝,再看:我擦,这个圆形菜单挺炫.于是 ...

  4. wpf 客户端【JDAgent桌面助手】开发详解(一)主窗口 圆形菜单

    目录区域: wpf 客户端[JDAgent桌面助手]业余开发的终于完工了..晒晒截图wpf 客户端[JDAgent桌面助手]开发详解-开篇 内容区域: 这里开始主窗口 圆形菜单制作的过程,首先请大家看 ...

  5. Android 造炫目的圆形菜单 秒秒钟高仿建行圆形菜单

    1.概述 今天打开建行看存款,一看伤心欲绝,再看:我擦,这个圆形菜单挺炫.于是,为了掩盖我悲痛的心情,我决定是实现这个效果.好了,其实还有个原因,记得我初学android那会我做的应用被鄙视了,说我的 ...

  6. 纯CSS3打造圆形菜单

    原理是使用相对定位和绝对定位确定圆形菜单位置. 使用伪类选择器E:hover确定悬浮时候的效果,动画效果用CSS3的transition属性. 大概代码如下. html: <div id=&qu ...

  7. 10分钟制作UWP汉堡菜单

    什么是汉堡菜单? 汉堡菜单,指的是一个可以弹出和收回的侧边栏.在UWP和Android应用中,汉堡菜单都非常常见. 首先我们列出所有需要掌握的前置知识: 1,SplitView 2,StackPane ...

  8. android——仿微拍贷滑动圆形菜单

    一次偶然机会接触到微拍贷的app,瞬间被其圆形可滑动菜单吸引了.一直琢磨着给弄出来. 现在弄出来了.先看看效果吧 如果你也喜欢这个菜单.去我的github找源码吧.太忙了.没时间贴代码和讲解了. ht ...

  9. uwp汉堡菜单的实现

    ---恢复内容开始--- 现在uwp上面的汉堡菜单(就是那个三道杠,点击之后会出现菜单)使用的越来越普遍,比如微软自己家的Cortana.现在我使用的实现方法是使用SplitView实现.首先Spli ...

随机推荐

  1. vue项目中遇到的问题

    在 export defaul new Router({ )} 这个路由配置中一定要加mode : 'history' 否者就会在路由前面默认添加# 路由跳转的几种方式: 在VUE中使用less来编译 ...

  2. 02-python中列表的增删改查

    增: append() #添加到原有列表的最后 In [1]: names = ["老王","老李","老刘","老张" ...

  3. java定时任务(三):timerTask定时任务

    这种方式是纯粹的java代码,需要继承timerTask接口并重写run方法,创建这个类的时候就会调用run方法. 基本的使用逻辑是: 把自己需要处理的业务逻辑放在自己写的这个继承了timerTask ...

  4. JUnit4测试出错(一)

    log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUn ...

  5. 深度学习word2vec笔记之基础篇

    作者为falao_beiliu. 作者:杨超链接:http://www.zhihu.com/question/21661274/answer/19331979来源:知乎著作权归作者所有.商业转载请联系 ...

  6. Naive Bayes (NB Model) 初识

    1,Bayes定理 P(A,B)=P(A|B)P(B); P(A,B)=P(B|A)P(A); P(A|B)=P(B|A)P(A)/P(B);    贝叶斯定理变形 2,概率图模型 2.1  定义 概 ...

  7. Invalid property 'driver_class' of bean class

    1.错误描述 INFO:2015-05-01 13:06:07[localhost-startStop-1] - Initializing c3p0-0.9.2.1 [built 20-March-2 ...

  8. jQuery遍历table中的tr td并获取td中的值

    jQuery遍历table中的tr td并获取td中的值 $(function(){ $("#tableId tr").find("td").each(func ...

  9. 异常-----freemarker.core.ParseException: Unexpected end of file reached

    freemarker自定义标签 1.错误描述 freemarker.core.ParseException: Unexpected end of file reached. at freemarker ...

  10. 手机端仿ios的单级联动脚本三

    脚本 <script>var weekdayArr=['非公司企业法人','个体工商户','私营独资企业','私营合伙企业','有限责任公司','股份有限责任公司'];var mobile ...