【WP8】MultiBinding】的更多相关文章

WP中系统没有像WPF中直接支持MultiBinding,可以通过以下代码实现 五个类 public class BindingCollection : Collection<BindingBase> { // Fields private readonly BindingCollectionChangedCallback _collectionChangedCallback; // Methods //internal BindingCollection(BindingCollectionC…
2014年09月02日更新 今天用了一下WebBrowser,在使用过程中也遇到了一些问题,在这里做一下记录 虽然WebBrowser比较重,会比较影响性能(除非一定要用到它,否则尽量少用),但有时候还是得用WebBrowser来作为显示的控件,比如WP上有2048渲染的限制,我们可以通过WebBrowser来显示长文本,还有富文本信息(新闻)等,但使用起来也并不方便,这里做一下记录 1.禁止缩放 <head> <meta http-equiv="Content-Type&qu…
14-08-29 12:32更新:修复StorageHelper部分bug WP8以后提供了StorageFile的方式访问文件,StorageFile对文件的操作只提供了异步的支持,包括WP8.1 RT也没有对同步读写文件的支持,可以看出异步在移动开发中的重要性,而且Win8也是通过StorageFile进行文件操作的 跟WP7上的IsolatedStorageFile相比,StorageFile使用起来并不方便,最近总结了一些资料,写了一个通用的类库 StorageFile默认是线程不安全的…
通过修改样式让TextBox支持文本滑动 在Silverlight上,TextBox是有文本滚动的功能的,当TextBox的文本过长时,可以进行拖动的,TextBox使用 VerticalScrollBarVisibility 和 HorizontalScrollBarVisibility 来控制滚动条的显示 在Windows Phone上的TextBox 也拥有 VerticalScrollBarVisibility 和 HorizontalScrollBarVisibility 两个属性,但…
之前在WP7升级到WP8的时候遇到配置不兼容的问题 情景:之前只有一个WP7版本,现在需要发布WP8版本,让用户可以从原来的WP7版本升级到WP8版本 一般情况下从WP7升级到WP8没什么问题 但是在项目中升级到WP8的时候,原先在WP7下保存在IsolatedStorageSettings的数据都不出来,经过调试发现 1.IsolatedStorageSettings存放数据的隔离存储控件的"__ApplicationSettings"文件中,存放的格式如下 {"test&…
WP8中引用资源字典 当我们定义的样式太多的时候,我们可以把样式分别定义在不同的文件中,然后通过 MergedDictionaries 应用到其他资源字典中,看下面Demo 我们可以把样式定义在多个文件中,然后再App.xaml中引用 我们先定义三个文件 1.蓝色按钮资源文件,定义按钮的Foreground为Blue <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&qu…
WP8的WindowsPhoneToolkit工具包中有一个 LoopingSelector 可以想选择日期或时间一样进行选择 1.首先当然是引用WindowsPhoneToolkit 在Nuget控制台: PM> Install-Package WPtoolkit 2.LoopingSelector 的数据源是 ILoopingSelectorDataSource类型的,我们先实现两个类继承该接口 public abstract class LoopingDataSourceBase : IL…
在WP8中,控件WebBrowser没有提供对滚动条的支持,而在内置的IE中,却可以显示出滚动条(微软这是在坑我们吗),但如果在客户端使用Webbrowser的话,自己构造ScrollBar来显示 通过javascript监听onscroll事件,然后传递给Webbrowser,通过onscroll的位置来确定自定义的ScrollBar的位置 下面演示方法: 1.在Html代码中添加javascript代码 function initialize() { window.external.noti…
在WP8中支持启动第三方应用程序,比如在App1中可以打开App2,你可以在你的应用程序中直接打开QQ,也可以让其他开发者调用你的APP,例如:软件盒子 下面演示被调用方和调用方的使用方法,新建两个项目(GetApp 和 GiveApp) 1.注册 URI 关联(GiveApp) 在应用清单文件 WMAppManifest.xml 中指定相应的 URI 方案名.您的 URI 方案名可以是字母和数字的任意组合,但不能和系统内置的保留名冲突,这里注册为 ms-myapp1 系统保留的Uri关联名称:…
在WP7中没有相关的API可以直接使用摄像头的LED等,只能通过录像时打开LED等来使用,在WP8中添加了相关的调用接口,可以方便的使用LED灯,并且支持后台,废话不多说,直接上代码 1.在 WMAppManifest.xml 文件中添加对ID_CAP_ISV_CAMERA和ID_CAP_MICROPHONE功能的引用 <Capabilities> <Capability Name="ID_CAP_ISV_CAMERA"/> <Capability Nam…
14-09-09更新:修复AppBar冲突bug 关于WindowManager,一直都很想写一篇博客分享一下,一直在忙别的,今天抽空把这个分享一下 在弹窗在移动开发是一个很常见的交互,很多时候我们都需要进行弹窗,比如我们需要询问用户的一些操作,提供更丰富的交互,又比如我们需要弹出一个框提示用户给我们好评 WP系统提供关于对话框的操作只有一个MessageBox,MessageBox样式简单,并且无法扩展,比如我们需要自定义按钮的文字都不可以,极大限制了我们的发挥,如果我们需要弹窗,还有Popu…
微软的StorageFile只支持异步的方式进行文件操作,我之前也封装过一个StorageHelper,但是当所有的方法都是异步的时候也带来一些问题 1.比如我们不能在构造函数调用异步代码(等待), 2.比如我们在离开App的时候我们需要对数据进行快速的保存(在事件中),这个时候就不适合用异步了,异步可能会导致保存失败,因为App已经不在前台了 最近就遇到了一个这样的需求 我封装了一个SqliteHelper类,提供了一些数据库操作的一些常用方法,在数据库使用之前,需要保证数据库路径的文件夹是存…
MVVM模式实现了ViewModel和View的分离,但是有很多时候我们需要进行页面间通信 比如,我们在设置界面修改了某个项的值,需要同步到主页面,让主页面做相关的逻辑,由于每个页面对应一个ViewModel,ViewModel之间又是独立的,很多MVVM实现都提供了EventAggregator来实现ViewModel之间的通信,其原理就是订阅与广播 EventAggregator原理 1.消息订阅者向EventAggregator订阅消息 2.消息发布者向EventAggregator发布消…
WPToolkit中的ToggleSwitch开关控件是比较常用的控件,之前在做的的时候遇到一个问题,默认语言改为中文,手机系统语言也为中文,但是开关状态无法应用本地化的语言库,开关状态总是显示On/Off,而产品要求显示中文的开关 通过Nuget下载下来的WPToolkit包中是包含中文的语言的 经过一番摸索,终于找到原因了 在中文版的VS开发环境中,生成的项目默认是中文语言的zh-CN,定义在 AssemblyInfo.cs 文件中 我们需要把项目的默认语言改为英文 en-US,才能让项目自…
2014年8月1日更新:修复如果有多个相同链接解析失败的Bug,谢谢 @Walsh 提供的问题 富文本在移动APP上应用的最多的就是表情了,类似微博,QQ,微信都有对提供对表情和链接的支持,富文本一般包括:文本,表情,超链接 WP上没有提供对富文本的直接编辑,富文本是通过字符串进行转换的,例如:QQ上的表情用斜杠标识(例如:/哈哈),微博上的表情用中括号标识(例如:[兔子]) 本文实现富文本的思路是: 表情:通过构造正则表达式,匹配相关的表情标识,并替换成相关的表情图片 链接:通过正则表达式匹配…
主题功能在移动开发中是最常见的功能之一,用的最多的是日间模式和夜间模式的切换,下面说说如何在WP上使用主题,不同主题的差别无非就是两种(颜色和图片),在WP上我们通常使用资源来设置颜色,系统提供了两种背景(白色/黑色)和主题色,当用户为系统设置不同的背景和主题色的时候,App也会根据主题色的不同而展示不同的效果,所以我们使用改变Brush的颜色或背景来控制主题的显示 1.修改颜色画刷 在修改原有的画刷(PhoneAccentBrush,PhoneForegroundBrush,PhoneBack…
在做图片相关的应用的时候,经常需要用大图片的缓存,默认的Image控件不支持缓存的支持,本文自定义一个支持图片缓存的控件 当图片的地址是网络图片时候 根据Url判断该图片是否存在本地,如果存在,则直接从本地读取,如果不存在,则通过Http请求下载该图片,保存到本地,然后读取到Image控件中 当图片为本地地址的时候,直接从本地读取,设置到Image控件中 1.在定义可缓存图片控件之前,先封装一下文件存储的帮助类 using System; using System.IO; using Syste…
最近在做图片上传功能,类似于微信朋友圈的功能,现在的手机像素都比较高,手机上的图片一般都比较大(几M),对于大图,在上传之前,我们需要对图片进行压缩(分辨率和质量),再上传到服务器,以减少网路流量传输 实现思路: 判断图片是否大于指定的大小 否:原图上传 是:通过BitmapImage检测出图片分辨率,然后将分辨率限制在1200*1200分辨率以内(保持宽高比),然后通过SaveJpeg方法写入到流中 笔者测试,绝大部分图片处理后都能控制在300kb以内(部分超过一点) using System…
很多时候会有到底加载更多的需求,而ScrollViewer不支持继承,无法继承它进行扩展,只能通过触发器来控制到底的事件(当然,可以通过UserControl去扩展) 思路:定义一个Trigger,自定义依赖属性,绑定到该属性到ScrollViewer的VerticalOffset属性上,然后监听属性的变化,就能监控到滚动事件了,然后判断滚动的位置从而判断出是否到底 原理很简单,下面看实现 // *************************************************…
CM支持通过ViewModel进行导航,并通过支持参数传递,但是内部只是通过反射的方式构造Uri的参数进行导航,所以只支持简单类型的参数传递,下面对其进行扩展,在页面导航时支持复杂类型的参数传递,并扩展了部分方法,比如,导航后删除上一个页面,清空导航,清空跳转等,详细的看代码 // ************************************************* // // 作者:bomo // 小组:WP开发组 // 创建日期:2014/5/22 23:03:26 // 版本…
WP版的QQ提示消息的时候从顶部滑入,3秒后从顶部滑出,本文模仿该效果实现一个MessageToastManager类用于显示提示消息 思路很简单,就是动画而已,支持配置颜色和回掉 // ************************************************* // // 作者:bomo // 小组:WP开发组 // 创建日期:2014/7/7 15:18:12 // 版本号:V1.00 // 说明: // // ****************************…
WP上,当使用TextBox输入文字的时候,键盘会把TextBox向上推一段距离 当编辑第二个TextBox的时候,页面被上推,键盘刚好和TextBox靠在一起 当编辑第一个TextBox的时候,页面被上推,键盘与TextBox有一段很小的距离 现在需要实现一个文本输入的窗口,当用户编辑文本的时候,TextBox可以紧靠在TextBox 实现:通过绑定监听ApplicationFrame的RenderTransform中的TranslateTransform中的Y属性的变化,从而自行控制Fram…
1.测量和安排布局:MeasureOverride, ArrangeOverride //测量(传入控件的可用大小) protected override Size MeasureOverride(Size availableSize) { //遍历所有子空间 foreach (UIElement child in InternalChildren) { //计算控件可用大小,调用子控件的MeasureOverride方法 child.Measure(availableSize); //获得控件…
原文:[WPF]wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例       用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题,一般通过设置xaml中的BindingParameter属性来给Converter传递参数.       但是这个BindingParameter只支持已经定义好的资源类型(Resource),不支持int,Object等类型,在BindingParameter中也无法再次通过Binding的方法动…
学习uwp开发也有一段时间了,最近上架了一个小应用(China Daily),现在准备将开发中所学到的一些东西拿出来跟大家分享交流一下. 先给出应用的下载链接:China Daily , 感兴趣的童鞋可以看一看. 废话就扯到这里,接下来,我们来看看这个应用中的划词翻译功能是如何实现的(也顺带谈谈点击正文中的图片显示详情). 新闻的主体是放在一个WebView里面的,所以,说白了就是解决WebView的问题(JS通知后台C#以及C#调用JS). 1.XAML <WebView x:Name="…
原文:C# Windows Phone App 开发,修改[锁定画面],从[Assets].[UI].[网路图片],并解决失灵问题. 一般我们在开发Windows Phone App,有时会希望透过应用程式来改变锁定画面,但是锁定画面的设定有时会发生非常吊诡的现象,譬如锁定画面只会在第一次设定的时候成功,第二次之後全数失败,而且没有发生任何错误,这究竟是为什麽呢?! ? 本篇文章将引导您修改[锁定画面],从[Assets].[UI].[网路图片],并解决失灵问题. ? 制作修改锁定画面的APP必…
WPF之Binding[转] 看到WPF如此之炫,也想用用,可是一点也不会呀. 从需求谈起吧: 首先可能要做一个很炫的界面.见MaterialDesignInXAMLToolKit. 那,最主要的呢,还是想显示数据. 就先来数据,数据可以从数据库里得到,可是如何显示出来呢? 本文的主角出来了:(以下内容全转载他人,具体 原文见上面的链接) ==================================== 1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在存储.…
原文:[C#]wpf自定义calendar日期选择控件的样式 首先上图看下样式 原理 总览 ItemsControl内容的生成 实现 界面的实现 后台ViewModel的实现 首先上图,看下样式 原理 1. 总览: Calendar本质上是一个6x7的列表,这个列表可以用ItemsControl来实现.其填充的每一个item都是一个自定义样式的Button,Button外面是一个圆形的border.根据Button按钮的IsEnabled状态,设置foreground以达到灰色不点击的效果. 2…
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1.百分号…
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective-C中的delegate大部分用法属于委托模式.全文有些抠概念,对实际开发没有任何影响. 前段时间看到的一篇博客iOS开发——从一道题看Delegate,和这篇博客iOS APP 架构漫谈解决的问题类似.两篇blog都写得很不错,都是为了解决两个页面之间的数据传递问题: A页面中有一个UILabel…