个人技术文档

ExReaderPlus  UI 技术相关文档

 

技术说明书

 

            1、RichEdit 自定义:

                  RichEdit 是UWP自带的富文本控件,<富文本> 能进行对其内的文本按指定格式进行重新组织;

                            这样就能实现对其内文本的 部分着色 和 类似 上、下标 关键字 的效果,但是我们的项目并没有在这个

                  方向上进行扩展,因为这样没有办法达到即时响应。

                            所以,在富文本控件的基础上,我加上了一层CanvasCanvas是绝对布局,将其和RichEdit

                  放在同一 Grid 内可以保证他们的大小相同,通过  RichEdit  的  Selection.GetRect()  可以得到选中的文本的

                  矩形范围,创建单词与其位置的字典,就可以根据这个字典将控件布局到单词的位置(当然,是在顶

                  层的 Canvas 上),这个控件只需要具有基本的响应就可以完成我们所需要的效果。

                           具体细节的话请查看此项目的  GitHub :https://github.com/20154530/ExReaderPlus  

 

            2、IValueConverter 接口

                  在UWP系列程序的开发中,时常会遇到这样的情况:一个控件有一个状态值 bool \ Int \ enum

                  我们需要根据这个来控制一些界面效果:如,着色,控制显示与否等。

                  这时候 Converter 会为我们提供很多便利,

                  IValueConverter  提供两个方法:

                  [ 当然在使用前需要在能够引用到的 resources 中为这个 Converter  创建一个静态实例 ]

                  Convert   :提供binding值到目标值的转换,比如

                                        Visibility="{Binding Visibility,ElementName=NowDic,Converter={StaticResource NegativeConverter}

                                                            ,ConverterParameter=Vis}"

                  ConvertBack  :在双向绑定时使用,方法一样。

 

          3、SVG & 位图图标

                SVG 是个好东西,它能够描述出矢量化的图标,并能够实时控制着色,形状等属性。

                Path 是 UWP 中实现 SVG 的控件 。 Path Data 属性支持字符描述的 SVG 路径

                环形拖动控制条可以使用这个来实现。

                项目地址:https://github.com/20154530/UWPTeamWork

                

                

         4、Binding 

               虽然 UWP 的 Binding 种类比较少,但是通过一些办法还是可以用的很灵活的,Binding

               ElementName 、RelativeSource 、Source 可以定位输入

               ElementName      可以用于定位区块内的其它控件

               这样可以把一个多个属性值聚集到一个属性上,然后动画修改这个属性来控制所有控件的相关属性

               RelativeSource   可以用于定位 自身模板类型 、自身 的属性

               这样控件可以根据自身属性来确定自己的状态,比如使 Textblock 无文字隐藏

               Source                  可以用于定位 资源中使用 Key 标识的任意静态类型

               可以在一个页面中使用其它页面 viewmodel 的属性,当然不推荐这样做

 

       还有其它许多细枝末节的东西就不说了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值