在上篇 Windows.Andy.Code4App.dll  Win8.1/WP8.1通用类库@ver1.0.0 已经对Win8.1和WP8.1部分扩展通用类库做了说明,这篇继续对通用类库做扩展。写的不好,还请各路大神多多指教~

Windows.Andy.Code4App  Win8.1/WP8.1通用类库@ver1.0.1项目结构:

比较上个1.0.0可以看到多了以下扩展:Async(异步类)、 Converter(转换类)、Device(设备类)、Encrypt(加密类)、Helper(帮助类)、Net(网络类)。下面对这些扩展类做一一介绍(有的内容较多,只列出扩展方法)。

一、Async(异步类)

1、AsyncProperty

异步属性,这里主要解决的问题是在Mvvm设计模式中实现任意依赖属性的异步绑定。比如,Image控件的Source属性绑定,有时会直接绑定一个网络地址但同时又想先查看本地是否已经存在指定的图片文件,查看本地是否存在是异步的,而对于这个Source绑定的值也要求具有异步性,这时就可以使用AsyncProperty。

Image绑定代码示例:

在Model中定义一个异步属性:

通过异步方法获取值:

在View中写法如下:

二、Converter(转换类)

转换类目前包含:BooleanToDataTemplateConverter、BooleanToDoubleConverter、BooleanToVisibilityConverter、ColorToBrushConverter、DoubleToIntConverter

很简单不做解释和实例。

三、Device(设备类)

1、DeviceHelper

这里只做了获取设备id的方法。

方法名称:GetDeviceId()

四、Encrypt(加密类)

1、MD5

对string和byte[]取MD5。

2、DES

因为WP和Win8里微软没有提供DES的加密解密类,但开发过程中有时要遇到,所以就把以前的des加密方法改造下就可以了。

方法:加密/解密字符串、加密/解密字符数组。

五、Extension(扩展类)

1、CommonObjectEx

①、CollectionEx

对IEnumerable<T>扩展:AsEnumerable<T>、And<T>、And<T>、ForEach<T>

对List<T>扩展:LockAdd<T>、LockRemove<T>

对ObservableCollection<T>扩展:LockAdd<T>、LockRemove<T>

②、DateTimeEx

只做了一个扩展:ToUnixTime

③、ObjectArraryEx

扩展:ToEnumerable<T>

④、StringEx

这个扩展较多,只是一些普通方法需求的封装:

GetBytesWithUTF8、GetBytesWithUnicode、UrlEncode、UrlDecode、AsUri、UpperFirst、CheckStringIsNullOrBlankOrEmpry

2、DependencyObjectEx

①、BitmapImageEx

扩展:WaitForLoadedAsync、LoadAsync、SetSourceAsync、LoadFromBase64String

②、ControlEx

扩展:GoToVisualStateAsync

③、FrameworkElementEx

扩展:WaitForLoadedAsync、WaitForUnloadedAsync、WaitForLayoutUpdateAsync、WaitForNonZeroSizeAsync、WaitForImagesToLoad

④、GridViewEx

扩展:ItemIsVisibility

⑤、ImageEx

这里主要对Image Opened做动画扩展,View写法如下:

上面的xaml标识随即动画淡入。这两个可以联合使用也可以单独去适用,看自己的开发需求。随机动画包含:FadeIn、SlideUp、SlideLeft、SlideDown、SlideRight

⑥、ScrollViewerEx

扩展:ScrollToHorizontalOffsetWithAnimation、ScrollToVerticalOffsetWithAnimation、ZoomToFactorWithAnimation、ChangeView

⑦、StoryboardEx

扩展:BeginAsync 异步开始动画

⑧、StyleEx

扩展:GetPropertyValue 获取style样式中指定依赖属性的对象

⑨、TextBlockEx

扩展:GetCharacterRect、

⑩、WriteableBitmapEx

扩展:WaitForLoadedAsync、LoadAsync、FromBitmapImage、SetSourceAsync、SaveToFile

3、DependencyPropertyEx

①、TiltEffect

添加Enabled依赖属性,指定依赖对象是否具有倾斜特性。

②、VisualStateEx

添加State依赖属性,指定依赖对象转换到指定状态。

六、Helper

1、CommonHelper

普通帮助类,里面包含常用的一些方法:

IsConnectedToInternet、StreamToBytes、ObjToBytes、BytesToObj、AsEncodingString、FormDataCombine

2、ScrollViewHelper

包含方法:ScrollGridViewToItem

3、VisualStateHelper

包含方法:GetStoryboardForVisualState。根据指定的VisualState获取对应的Storyboard

七、Net

这里主要是对网络的操作

1、WebData

①、Get、 Form表单需要用户名和密码方式获取数据:GetFromUrlWithAuthReturnString、GetFromUrlWithAuthReturnByteArrary、GetFromUrlWithAuthReturnStream

②、Get、Form表单不需要用户名和密码方式获取数据:GetFromUrlReturnString、GetFromUrlReturnByteArrary、GetFromUrlReturnStream

③、Post、Form表单需要用户名和密码方式获取数据:PostToUrlWithAuthReturnString、PostToUrlWithAuthReturnByteArrary、PostToUrlWithAuthReturnStream

④、Post、Form表单不需要用户名和密码方式获取数据:PostToUrlReturnString、PostToUrlReturnByteArrary、PostToUrlReturnStream

⑤、Get、Body JsonData需要用户名和密码方式获取数据:GetFromUrlWithAuthAndJsonReturnString、GetFromUrlWithAuthAndJsonReturnStream、GetFromUrlWithAuthAndJsonReturnByteArrary

⑥、Get、Body JsonData不需要用户名和密码方式获取数据:GetFromUrlWithJsonReturnString、GetFromUrlWithJsonReturnStream、GetFromUrlWithJsonReturnByteArrary

⑦、Post、Body JsonData需要用户名和密码方式获取数据:PostToUrlWithAuthAndJsonReturnString、PostToUrlWithAuthAndJsonReturnStream、PostToUrlWithAuthAndJsonReturnByteArrary

⑧、Post、Body JsonData不需要用户名和密码方式获取数据:PostToUrlWithJsonReturnJsonString、PostToUrlWithJsonReturnStream、PostToUrlWithJsonReturnByteArrary

2、WebDownFile

这个类主要是提供通过Http或者BackgroundDownloader来实现文件的下载和保存

包含的方法:SaveAsyncWidthHttpAndTimeOut、SaveAsyncWithHttp、SaveAsyncWithBackgroundDownloader、SaveAsyncWithBackgroundDownloaderAndProgress

以上就是@ver1.0.1版本新扩展的内容,有些方法做了很多的重载,可以自行查看。

项目中预留了Animation(动画类库)、Contol(控件库)以及style(样式库),下个版本中将会加入。

组件下载地址:因某家无底线的篡改抄袭已取消

Windows.Andy.Code4App.dll Win8.1/WP8.1通用类库@ver1.0.1的更多相关文章

  1. Windows.Andy.Code4App.dll Win8.1/WP8.1通用类库@ver1.0.0

    直接入题! Win8.1和WP8.1眼下已经渐渐融为一体,WP8.1不断向Win8.1靠拢,虽然一些方法上WP8.1和Win8.1不同(ps:WP8.1和Win8.1的不同之处),但大部分还是相同的. ...

  2. 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题

    这些提示的问题完全没有必要去理会,因为一般情况下你点击本地windows调试,会报出这样问题很正常. 网上一些介绍什么要去选项卡栏勾选window连接器什么鬼,不建议用该方式,一旦你勾选那个方式虽然不 ...

  3. .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll

    这个案例指在介绍微软这套免费又功能强大的图表控件Microsoft Chart Controls for Microsoft .NET Framework 3.5,通过它,可让您的项目及报表,轻松套用 ...

  4. 启动C:\Windows\System32\logiLDA.DLL时出现问题,找不到指定模块

    环境:windows8.1专业版 问题:启动C:\Windows\System32\logiLDA.DLL时出现问题,找不到指定模块 每次开机都会弹出上图所示的信息. 经过查找是罗技鼠标驱动的问题:而 ...

  5. Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)

    要求Delphi2007或者更高版本, 系统要求至少XP-SP2以上 实际上是利用了Windows的windowscodecs.dll这个文件的功能 在VCL里已经封装为TWICImage类 proc ...

  6. 错误:C:\Windows\System32\ssleay32.dll: Can't load IA 32-bit .dll on a AMD 64-bit

    错误:C:\Windows\System32\ssleay32.dll: Can't load IA 32-bit .dll on a AMD 64-bit 错误的原因是:jdk不是64位的,而是32 ...

  7. [转载]解析WINDOWS中的DLL文件---经典DLL解读

    [转载]解析WINDOWS中的DLL文件---经典DLL解读 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! ...

  8. Fix Windows 7 Msvcp71.dll And Msvcr71.dll Missing Error

    Fix Windows 7 Msvcp71.dll And Msvcr71.dll Missing Error Fix Msvcp71.dll And Msvcr71.dll Missing Erro ...

  9. C:\WINDOWS\system32\wmp.dll”受到“Windows 系统文件保护”

    在VC# 2005 中,要是打包的程序中包含了Windows Media Player 这个组件的话,在生成解决方案的过程中会提示出错:  "错误1,应将“wmp.dll”排除,原因是其源文 ...

随机推荐

  1. 【原】CentOS7上安装Xwiki8.2.1

    环境 CentOS 7内核版本为  3.10.0-327.el7.x86_64JDK8(jdk1.8.0_101)+Tomcat7.0.67+MySQL5.6.32XWIKI 8.2.1 xwiki- ...

  2. 基于BaseHTTPServer的简单存储服务器

    服务器代码: from BaseHTTPServer import BaseHTTPRequestHandler from BaseHTTPServer import HTTPServer impor ...

  3. shareplex三点同步配置

    一.准备工作 主从类型 系统版本 数据库版本 主机地址 主机名 源数据库 Centos6.4 X86_64 11.2.0.4.0 192.168.3.230 dbshareplex 目的数据库 Cen ...

  4. [改善Java代码]动态加载不适合数组

    上一个建议解释了为什么要使用forName,本建议就说说哪些地方不适合使用动态加载. 如果forName要加载一个类,那它必须是一个类------8中基本类型就排除在外.它们不是一个具体的类. 其次它 ...

  5. [改善Java代码]若有必要,使用变长数组

    Java中的数组是定长的,一旦经过初始化声明就不可改变长度,这在实际使用的时候非常不方便.比如要对一个班级的学生信息进行统计,因为我们不知道班级会有多少个学生(随时可能有退学,入学,转学),所以需要一 ...

  6. [改善Java代码]在明确的场景下,为集合指定初始容量

    我们经常使用ArrayList,Vector,Hashmap等集合,一般都是直接用new跟上类名声明出一个集合来,然后使用add,remove,等方法进行操作,而且因为它们是自动管理长度的,所以不用我 ...

  7. hdu 1325 Is It A Tree?

    Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  8. Commons Codec - 常见的编码解码

    Base64 Base64 编码 assertEquals("T3chIQ==", Base64.encodeBase64String("Ow!!".getBy ...

  9. markdown编辑

    有用的技巧之,如何实现首行空两格,把输入法切换成全角(shift+space),就可以实现一个两字符的空格了. 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 w s r s r s 文本 ...

  10. (二)Qt界面设计之菜单栏

    1.添加菜单项 直接输入菜单项名称,然后回车即可. 2.为菜单项设置图标 在动作编辑器上,右键选择编辑,然后添加图标 如果想在图标栏添加该菜单的快捷图标,直接将该动作项拖放只图标栏即可. 3.事件响应 ...