本文讲的是如何去做一个时间轴样子的东西但我们放的不一定是时间,可能是我们的时间。我把它放在我的CSDN阅读,我的界面做出来很差,但是应该读者能做出很漂亮的。

行间距

我们在ViewModel写一个ObservableCollection,我把它名字叫Str,因为这个是随意的,我们不需要给他他值。

然后在我们的界面,用ListView。

要我们的ListView的Item有和ListView一样的宽度可以简单设置ItemContainerStyle


                        <ListView.ItemContainerStyle>

                            <Style TargetType="ListViewItem">

                                <Setter Property="HorizontalContentAlignment"

                                        Value="Stretch" />

                            </Style>

                        </ListView.ItemContainerStyle>

这时,我们在我们的模板写Grid的背景为black


           <ListView.ItemTemplate>

                <DataTemplate>

                    <Grid Background="Black">

                        <TextBlock Text="123"></TextBlock>

                    </Grid>

                </DataTemplate>

            </ListView.ItemTemplate>

可以看到行间隔,UWP行间距其实是我们没有设置垂直,因为开始是Center

我们可以使用设置他和宽度一样,其实这里我说错,是水平布局


                    <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>

全部代码


    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

        <ListView ItemsSource="{x:Bind View.Str}">

            <ListView.ItemContainerStyle>

                <Style TargetType="ListViewItem">

                    <Setter Property="HorizontalContentAlignment"

                                        Value="Stretch" />

                    <Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>

                </Style>

            </ListView.ItemContainerStyle>

            <ListView.ItemTemplate>

                <DataTemplate>

                    <Grid Background="Black">

                    </Grid>

                </DataTemplate>

            </ListView.ItemTemplate>

        </ListView>

    </Grid>

兴趣线

我要想说下兴趣线是什么,这个很多人叫时间轴,UWP时间轴的做法其实就是一个ListView。

这是我的CSDN博客阅读,虽然界面做的很渣,但是我想说这个左边的线就是我们要做的。

大家可以看到左边的,其实就是两条线和两个圆。

我们先用Rectangle来画我们第一个线,我们需要他就在中间


HorizontalAlignment="Center"

放在一个Grid的中间就是我们设置水平为center

然后我们在右边放一个Rectangle,如何在Grid放的是一半,我们可以在Grid放一个Grid,使用ColumnDefinitions水平把Grid分左右


<Grid.ColumnDefinitions>

             <ColumnDefinition></ColumnDefinition>

             <ColumnDefinition></ColumnDefinition>

 </Grid.ColumnDefinitions>

然后把Rectangle放在右边,注意要设置他的高度和宽度


<Rectangle Grid.Column="1"/>

开始设计我们不知道宽度和高度的值,每次修改都需要改好多个,那么我们如何就修改一个?我们可以使用常亮,也就是我们的Resource


                        <ListView.Resources>

                            <!--<x:Double x:Key="LeftListWidth">100</x:Double>-->

                            <GridLength x:Key="LeftListWidth" >100</GridLength>

                            <x:Double x:Key="RectangleWidth">6</x:Double>

                            <SolidColorBrush x:Key="RectangleColor" Color="#FFDA3E3E"></SolidColorBrush>

                            <!--<SolidColorBrush x:Key="VerticalRectangleColor"  ></SolidColorBrush>-->

                            <x:Double x:Key="EllipseWidth">30</x:Double>

                        </ListView.Resources>

我首先是定义了左边的宽度,也就是放圆圈的那个Grid宽度,然后定义Rectangle的宽度,作为垂直的Rectangle就是他宽度,水平的就是他高度。

然后定义它的颜色,定义了Ellipse的宽度。

画完了线我们需要画圆

在Grid放一个Grid,然后画一个圆,注意这个圆Stroke为颜色,然后Fill背景颜色

这样就可以让后面的Rectangle被圆不看

然后我们需要在我们的圆再一个小的


      <Ellipse Width="10" Height="10"

               Fill="{StaticResource RectangleColor}"></Ellipse>

这样就是我们的画法

全部代码


<Grid Margin="0,0,0,0">

                                        <Rectangle Margin="0,0,0,0"

                                                   Width="{StaticResource RectangleWidth}"

                                                   Fill="{StaticResource RectangleColor}" 

                                                   VerticalAlignment="Stretch"

                                                   HorizontalAlignment="Center"></Rectangle>

                                        <Grid >

                                            <Grid.ColumnDefinitions>

                                                <ColumnDefinition></ColumnDefinition>

                                                <ColumnDefinition></ColumnDefinition>

                                            </Grid.ColumnDefinitions>

                                            <Rectangle Grid.Column="1"

                                                       Fill="{StaticResource RectangleColor}"

                                                       Height="{StaticResource RectangleWidth}"></Rectangle>

                                        </Grid>

                                        <Grid Width="{StaticResource EllipseWidth}" Height="{StaticResource EllipseWidth}">

                                            <Ellipse Stroke="{StaticResource RectangleColor}" StrokeThickness="6"

                                                     Fill="White"></Ellipse>

                                            <Ellipse Width="10" Height="10"

                                                     Fill="{StaticResource RectangleColor}"></Ellipse>

                                        </Grid>

                                    </Grid>

做完左边,就去做右边,右边其实就是一个Border里面一个TextBlock,当然里面最好把TextBlock换Grid,注意Margin,这样就好啦。

源代码:https://github.com/lindexi/csdn-uwp


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

win10 uwp 兴趣线的更多相关文章

  1. Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

    安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...

  2. Win10 UWP开发系列:实现Master/Detail布局

    在开发XX新闻的过程中,UI部分使用了Master/Detail(大纲/细节)布局样式.Win10系统中的邮件App就是这种样式,左侧一个列表,右侧是详情页面.关于这种 样式的说明可参看MSDN文档: ...

  3. win10 uwp 毛玻璃

    毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...

  4. 【广告】win10 uwp 水印图床 含代码

    本文主要是广告我的软件. 图床可以加速大家写博客上传图片的时间,通过简化我们的操作来得到加速. 在写博客的时候,我们发现,我们需要上传一张图片,需要先打开图片,然后选择本地图片,然后上传. 但是我经常 ...

  5. win10 uwp 渲染原理 DirectComposition 渲染

    本文来告诉大家一个新的技术DirectComposition,在 win7 之后(实际上是 vista),微软正在考虑一个新的渲染机制 在 Windows Vista 就引入了一个服务,桌面窗口管理器 ...

  6. win10 uwp 商业游戏 1.1.5

    本文是在win10 uwp 商业游戏 基础上继续开发,添加一些无聊的游戏 因为在发布几个月,下载量很少,小伙伴说游戏就玩不到几分钟就不想玩,于是我就想加入其他游戏 下面我来告诉大家如何在游戏中添加多个 ...

  7. Win10 UWP开发实现Bing翻译

    微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...

  8. Win10/UWP开发—使用Cortana语音与App后台Service交互

    上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...

  9. 【Win10 UWP】后台任务与动态磁贴

    动态磁贴(Live Tile)是WP系统的大亮点之一,一直以来受到广大用户的喜爱.这一讲主要研究如何在UWP应用里通过后台任务添加和使用动态磁贴功能. 从WP7到Win8,再到Win10 UWP,磁贴 ...

随机推荐

  1. 201521123119《Java程序设计》第8周学习总结

    1. 本周学习总结 2. 书面作业 Q1.List中指定元素的删除(题目4-1) Q1.1 实验总结 用split(" ")方法将list转化为字符串数组.要注意行中含有多个空格的 ...

  2. 201521123108 《Java程序设计》第八周学习总结

    1. 本周学习总结 2. 书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 答:主要是应用到了list中的add和remove等方法,dan'sh但是这道题主要的考察点在于li ...

  3. java第十三次作业

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相内关容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  4. SVN不出现绿色对勾的情况

    就目前而言,我出现了两种情况. Num1:电脑云盘可能不兼容,导致无法出现svn提示小icon:----->删除云盘重新启动. Num2:被设置覆盖.----->鼠标右键-->Tor ...

  5. 参加IMWebConf 2017 前端开发者大会是什么体验?

    周六作为特邀讲师之一参加了IMWebConf 2017 前端开发者大会的主题演讲,主题为<WebAssembly:面向未来的web开发技术>.本次大会质量非常高,来自国内外的技术专家带了很 ...

  6. Python 浅谈注释的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是难以下咽,几乎每个字符都要咨询他,用老师的话来说,这就是山炮编程员,所以此时的我意识到写一篇关于注释程序的重要性了,因此特地的写一篇文章帮助大家 ...

  7. Linux第一篇【介绍、安装Ubuntu、基本目录结构】

    Linux介绍 Linux:不管是不是我们这些学编程的都肯定会听说过这么一个系统,一般地,我们在PC端都是用Windows操作系统,那我们学习Linux操作系统有什么用呢??? 由于我们的JAVAEE ...

  8. 关于sping quartz定时执行理解与思考

    转载请注明原创出处,谢谢! 一直以为自己理解spring quartz,忽然最近几天发现自己理解的不对,在4月18号的时候,我执行了一个spring quartz的计划如下: 1 0 0 */3 * ...

  9. js 递归函数的使用及常用函数

    1.递归函数的使用: 公园里有一堆桃子,猴子每天吃掉一半,挑出一个坏的扔掉,第6天的时候发现还剩1个桃子,问原来有多少个桃子 var peache;function peaches(n) { if ( ...

  10. [Unity]Unity3D编辑器插件扩展和组件扩展

    1. 插件扩展 1.1. 命名空间 using UnityEditor; using UnityEngine; //非必需,常用到 1.2. 使用语法 [MenuItem("Assets/M ...