UWP 轨道视图Orbit View
先看一下效果吧
这是我的Music Tags App里面的效果图,当然你也可以做的比我的更炫。
其实这个效果的实现来自于控件UWP Community Toolkit的OrbitView,所以大家要多看看这个啊,里面大量好用的控件,只是UWP这情况,所以大家都没什么兴趣了。
不过不管需不需要,了解一下还是有好处的。
下面先看一下我的Xaml代码
<controls:OrbitView x:Name="orbitView"
AnchorColor="Gray"
AnchorsEnabled="False"
Background="Transparent"
IsItemClickEnabled="True"
MinItemSize="50"
MaxItemSize="100"
OrbitColor="LightGray"
OrbitsEnabled="True"
ItemClick="orbitView_ItemClick">
<controls:OrbitView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<!-- Have this space to keep image centered on line -->
<!--<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>-->
</Grid.RowDefinitions>
<controls:DropShadowPanel x:Name="DropShadowPanel"
HorizontalContentAlignment="Stretch"
HorizontalAlignment="Center"
VerticalContentAlignment="Stretch"
BlurRadius="20"
Color="Black"
Grid.Row="1">
<Ellipse Stretch="Uniform" VerticalAlignment="Stretch" HorizontalAlignment="Center"
Width="{Binding ActualHeight, ElementName=DropShadowPanel}">
<Ellipse.Fill>
<ImageBrush ImageSource="{Binding Image}" />
</Ellipse.Fill>
</Ellipse>
</controls:DropShadowPanel>
</Grid>
</DataTemplate>
</controls:OrbitView.ItemTemplate> <controls:OrbitView.CenterContent>
<Grid>
<controls:DropShadowPanel BlurRadius="20">
<Ellipse Width="105"
Height="105"
Fill="{ThemeResource SystemControlForegroundAccentBrush}"
Stroke="Black"
StrokeThickness="0" />
</controls:DropShadowPanel>
<Ellipse Width="100"
Height="100"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Ellipse.Fill>
<ImageBrush ImageSource="ms-appx:///Assets/Square44x44Logo.scale-400.png"/>
</Ellipse.Fill>
</Ellipse>
</Grid>
</controls:OrbitView.CenterContent>
</controls:OrbitView>
同其他控件一样,轨道视图的模板也是可以自定义的,在 OrbitView.ItemTemplate 里面
而在 OrbitView.CenterContent ,可以定义中心的图标,就是:
后台cs代码:
try
{
double[] arr1 = { 0.1, 0.4, 0.3, 0.15, 0.45, 0.2, 0.5 };
double[] arr2 = { 0.1, 0.4, 0.3, 0.45, 0.8, 0.15, 0.7, 0.2, 0.9, 0.5, 0.6, 0.1, 0.6, 0.4, 0.5, 0.8, 0.3, 0.9, 0.1, 0.5 };
for (int i = ; i <= (Application.Current as App).MusicItems.Count - ; i++)
{
ID3Tag item = (Application.Current as App).MusicItems[i];
BitmapImage bi = new BitmapImage();
bi = (BitmapImage)item.Cover;
OrbitViewDataItem ooo = new OrbitViewDataItem
{
Diameter = arr1[i % ],
Distance = arr2[i % ],
Image = item.Cover,
Label = item.Title,
}; ovcOrbit.Add(ooo);
}
orbitView.ItemsSource = ovcOrbit;
}
catch { }
很简单,指定每一个 OrbitViewDataItem 的半径,距离中心的距离,图片,标签即可。
我的情况是,涉及到的个数多,所以在一个轨道上可能有多个Item,用了预先设定好的数组。
自己用的时候要根据实际情况定。
UWP 轨道视图Orbit View的更多相关文章
- UWP 卡片视图 Card View
上一篇 提到了 UWP 轨道视图Orbit View,这次就说一下卡片视图,毕竟两个差不多. 卡片视图,效果如其名,卡片一样,左右滑动,当然能翻牌最好了. 嗯,我这个可以的额(⊙﹏⊙)... 看下效果 ...
- 1.Android 视图及View绘制分析笔记之setContentView
自从1983年第一台图形用户界面的个人电脑问世以来,几乎所有的PC操作系统都支持可视化操作,Android也不例外.对于所有Android Developer来说,我们接触最多的控件就是View.通常 ...
- ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)
在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好.打开Models \ Movie ...
- 视图(View)与部分视图(Partial View)之间数据传递
写ASP.NET MVC程序,我们经常需要把数据从视图(View)传递至部分视图(Partial View) 或者相反. 今天Insus.NET使用 ControllerBase.TempData 进 ...
- 截取视图某一段另存为部分视图(Partial View)
在做ASP.NET MVC后台管理程序时,根据程序需要,Isus.NET需要实现一个功能,就是动态截取视图某一段另存为部分视图Partial View. 思路为在视图中,使用jQury的程序截图以及P ...
- iphone绘图的几个基本概念CGPoint、CGSize、CGRect、CGRectMake、window(窗口)、视图(view)
我一般情况下不会使用interface builder去画界面,而是用纯代码去创建界面,不是装B,而是刚从vi转到xcode不久,不太习惯interface builder而已.当然如果需要我也会使用 ...
- 验证编辑方法(Edit method)和编辑视图(Edit view)
ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view) 在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图.但是 ...
- SAP HANA中创建计算视图(Calculation View)
[Step By Step]SAP HANA中创建计算视图(Calculation View) Demo Instruction: 该视图将两个表AUDIOBOOKS和BOOKS中的数据进行连接,并作 ...
- Oracle视图 create View
视图是一种虚表,使用CREATE VIEW语句来定义视图,该视图是基于一个或多个表或视图的逻辑表.一个视图本身不包含任何数据, 视图所基于的表称为基表. 视图就相当于一条select 语句,定义了一个 ...
随机推荐
- 超强IIS站点工具一键设置PHP,支持多个PHP同时运行
PHPWAMP8.8.8.8IN支持三大主流Web服务器:iis.apache.nginx NGINX站点管理.IIS站点管理.Apache站点管理均支持php多版本同时运行,无限自定义mysql.p ...
- 内置函数 sorted
内置函数 sorted 语法: sorted(iterable,key = None,reverse= false)iterable: 可迭代的对象key:排序规则(排序函数),在sorted内部将& ...
- UI(三)
1. 2.经常用到的loadmap函数 void CTopology::LoadMap() { //m_map.RemoveAllLayers(); AddLayersBasemap(); AddLa ...
- php添加mongo模块
可以从 http://pecl.php.net/package/mongo 下载目前的stable稳定版 我添加的是mongo-1.5.2.tgz # wget http://pecl.php.net ...
- S1 商品信息管理系统
#include <iostream> #include <cstdio> #include <cstdlib> #include <iomanip> ...
- Spring-IOC 在非 web 环境下优雅关闭容器
当我们设计一个程序时,依赖了Spring容器,然而并不需要spring的web环境时(Spring web环境已经提供了优雅关闭),即程序启动只需要启动Spring ApplicationContex ...
- CF993E:Nikita and Order Statistics(FFT)
Description 给你一个数组 $a_{1 \sim n}$,对于 $k = 0 \sim n$,求出有多少个数组上的区间满足:区间内恰好有 $k$ 个数比 $x$ 小.$x$ 为一个给定的数. ...
- 1003. [ZJOI2006]物流运输【区间DP+最短路】
Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转 停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严 ...
- 关于Android
1:Handle与多线程 Handle是什么?官方说明:handle是Android给我们提供用来更新UI的一套机制,也是一套消息处理的机制.可以看出handle主要就是两个功能,一个是更新UI,另一 ...
- iOS在framework中使用CoreData出现崩溃问题及解决方法
公司项目中有一个功能,保存授权令牌数据.最开始只有一条数据,所以就直接保存在了userdefaults中.后来需要两条数据,还是保存在userdefaults中,其中一条为固定的,另一条不固定可以进行 ...