前几天我写了一个UWP图片裁剪控件ImageCropper(开源地址),自认为算是现阶段UWP社区里最好用的图片裁剪控件了,今天就来分享下我编码的过程. 为什么又要造轮子 因为开发需要,我们需要使用一个图片裁剪控件来编辑用户上传的图片.本着尽量不重复造轮子的原则,我找了下现在UWP生态圈里可用的图片裁剪控件,然后发现一个悲惨的事实:UWP生态圈甚至没有一个体验优秀的图片裁剪控件! 举例来说,就连现在商店里做的比较好的网易云音乐.IT之家以及爱奇艺等应用,他们使用的图片裁剪控件体验也糟糕的一塌糊涂…
拍照--裁剪,或者是选择图片--裁剪,是我们设置头像或上传图片时经常需要的一组操作.上篇讲了Camera的使用,这篇讲一下我对图片裁剪的实现. 背景 下面的需求都来自产品. 裁剪图片要像微信那样,拖动和放大的是图片,裁剪框不动. 裁剪框外的内容要有半透明黑色遮罩. 裁剪框下面要显示一行提示文字(这点我至今还是持保留意见的). 在Android中,裁剪图片的控件库还是挺多的,特别是github上比较流行的几个,都已经进化到比较稳定的阶段,但比较遗憾的是它们的裁剪过程是拖动或缩放裁剪框,于是只好自己…
我们在开发系统时,会有很多种控件进行展示,甚至有一些为了方便的一些特殊需求. 那么下面就介绍一些我们在表格控件里常用的方便的控件:   1.Grid表格查询条 Grid表格下拉 3.Grid表格弹框选择控件ButtonEdit. 4.Grid表格下拉搜索控件 5.Grid表格下拉多选控件 1.Grid表格查询条 搜索框与表格长度一直,可配置图标样式更美观.(查询/重置)简化处理代码. 文本框记录所搜过出文本信息. 动态加载, 需要检索的信息与表格上有标记交互.可配置列过滤. 可搜索表格上的实际显…
一.效果如下: 二.在框架当中调用代码如下: 1.在js里配置如下: <script type="text/javascript"> var viewModel =function(data){ var self = this; snf.viewModel.admin.edit.apply(this, arguments); //保存前取值 this.BeforeSave = function(){ self.form.Description(UE.getEditor('e…
今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据项的水平网格控件 ListView:用于显示数据项的垂直列表控件 ListBox:可选项列表控件 ItemsControl:用于显示数据项的列表控件.是其他控件的父类. Pivot:应用内部标签导航控件 FlipView:每次只显示一个数据项的控件,通过滑动切换数据项 SplitView:包含主视图…
上面说 附加属性.这章节说依赖属性. 所谓依赖属性.白话讲就是添加一个公开的属性. 同样,依赖属性的用法和附加属性的用法差不多. 依赖属性是具有一个get,set的属性,以及反调函数. 首先是声明依赖属性. 依赖属性的用法如同附加属性,值得说明的是依赖属性是附加属性的”爸爸“,附加属性是依赖属性的派生. 声明必须是使用三个关键字:public static readonly (公开的 静态的 只读的) 之后是 依赖属性的 标识:DependencyProperty 合起来就是 :public s…
说说WebForm: 数据列表控件: WebForm 下的列表绑定控件基本就是GridView.DataList.Repeater:当然还有其它DropDownList.ListBox等. 它们的共同的设置数据源方法: XXX.DataSource=数据源. 那么这个数据源的格式,究竟有啥要求?最简单的方式是随便给弄个,然后等它抛异常: 从上面的错误可以看的出来,基本上支持三种数据源绑定方式:IListSource,IEnumerable,IDataSource. 说说Winform 数据列表控…
常见的图片裁剪有两种,一种是图片固定,裁剪框移动放缩来确定裁剪区域,早期见的比较多,缺点在于不能直接预览裁剪后的效果:还有一种现在比较普遍了,就是裁剪框固定,直接拖动缩放图片,便于预览裁剪结果. 我做的这个控件属于后者.一般来说,做图片裁剪的思路无外乎是先监听手势,获取坐标,再对图片变形,最后确定裁剪区域的坐标对位图进行裁剪,最后保存图片到本地.我嘛还是个技术小白,一想到要监控手势这些就头疼,碰巧项目之前为了做查看大图而引入了大名鼎鼎的第三方图片查看控件——PhotoView.于是转念一想,能不…
AlbumView控件 一.          样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个AlbumView控件到窗体界面上 修改AlbumView的属性 load事件代码 C#: private void TestAlbumView_Load(object sender, EventArgs e) { DataTable matTable = new DataTable(); matTable.Columns.Add("MA…
<Page.BottomAppBar> <CommandBar x:Name="appBar"> <AppBarButton Label="裁切" Icon="Crop" Click="AppBarButton_Crop_Click"> </AppBarButton> <AppBarButton Label="完成" Icon="Accept&…