你的位置:首页 > ASP.net教程

[ASP.net教程]【Win 10开发】绘制静态UI


相信经历过Windows Insider的人对下面这个图都不会陌生,偶然看见邹欣老师领导的微软团队写了篇用xaml绘制这个静态页面,那咱也来亲手实验一番。唔。。。请做和放宽!


首先我们来看看xaml代码。

 1   <Grid Background="Black"> 2     <Grid> 3       <TextBlock Margin="35" FontSize="20" Foreground="White" HorizontalAlignment="Center" FontFamily="Microsoft YaHei">请坐和放宽</TextBlock> 4       <Grid Height="200" Width="200" > 5         <Ellipse Stroke="Gray" StrokeThickness="3"></Ellipse> 6         <Ellipse Stroke="DeepSkyBlue" StrokeThickness="3"  7             StrokeDashArray="61.89, 1000" 8             RenderTransformOrigin="0.5, 0.5"> 9           <Ellipse.RenderTransform>10             <RotateTransform Angle="-90" />11           </Ellipse.RenderTransform>12         </Ellipse>13         <TextBlock FontSize="50" FontFamily="Microsoft YaHei" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White">30%</TextBlock>14       </Grid>15     </Grid>16   </Grid>

Shape.StrokeDashArray属性

Windows.UI.Xaml.Shapes.Shape基类,以及继承自它的Ellipse、Line、Path、Rectangle等类,都具有一些Stroke****之名的属性,可以实现描边效果。其中有一个比较特别的StrokeDashArray属性,它能实现虚线型的描边效果,加以扩展的话是我们实现重复性UI绘制的好帮手。

在XAML中,这一属性表现为形如”1,2,3,4”的字符串格式,而本质上它是一个DoubleCollection。其中的数值两两配对,依次表示虚线的短划线和空白间隔的长度,并且能周期性地出现。如果数值个数只有奇数个,那么匹配不满的那一组中,空白间隔的长度将和短划线的长度一致。

首先,将Grid的背景设置为黑色。然后画出两个圆形,一个圆形设置为灰色,StrokeThickness属性设置为3,将第二个圆设置为蓝色,StrokeThickness属性设置为3,此时圆形被蓝色填满,这是"进度100%"的效果。那么写这么一句StrokeDashArray="61.89, 1000"。此时我们可以看到一个坐和放宽就绘制出来了,是不是很简单。