惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CERT Recently Published Vulnerability Notes
K
Kaspersky official blog
S
Schneier on Security
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
T
Threatpost
T
Tor Project blog
T
Tenable Blog
The Register - Security
The Register - Security
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
H
Help Net Security
博客园_首页
I
Intezer
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Project Zero
Project Zero
Recorded Future
Recorded Future
C
Cybersecurity and Infrastructure Security Agency CISA
Vercel News
Vercel News
A
Arctic Wolf
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Know Your Adversary
Know Your Adversary
P
Privacy & Cybersecurity Law Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
P
Privacy International News Feed
G
GRAHAM CLULEY
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
Simon Willison's Weblog
Simon Willison's Weblog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
T
The Exploit Database - CXSecurity.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Security Latest
Security Latest
Cyberwarzone
Cyberwarzone
L
Lohrmann on Cybersecurity
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog

博客园 - MainTao

WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置 WebStorm安装Vim以及快捷键设置 scroll clock–jQuery widget implement 基于iScroll 的开发(不断补充) C#操作Win7/Win8的库、收藏夹 P/Invoke Interop 实例 WP7图片从独立存储绑定 编写jQueryUI插件(widget) 调试Javascript Windows Phone 7监测网络环境变化 Blend制作动画 用OpacityMask快速制作theme friendly UI 用gradient brush和OpacityMask实现fade edge效果 blend 画图 ControlTemplate & DataTemplate PhoneApplicationFrame以及设置Obscured/Unobscured的event handler Windows Phone 7 短信表情 WP7应用程序生命周期,以及各个event handler分别该做什么 XAML中的空格、换行、Tab
第一个WP7程序 开发总结
MainTao · 2011-11-22 · via 博客园 - MainTao

终于做完了一个完整的应用,code name叫Whisper,以后有机会发到marketplace上。

先不说这个应用是干什么的了,把开发过程中突破的技术问题总结一下。

难题1:Listbox控件自动回弹无法停留,看不到最底下的items

原因:这是因为把Listbox放在了StackPanel布局下,因为StackPanel是动态的,不知道自己占多大空间。而Listbox使用数据绑定时也不知道自己占多大空间。他俩都不知道,于是就导致了这个悲剧。

解决:把StackPanel换成Grid,让Grid的Height属性="*"

难题2:ContextMenu用了数据绑定后,ContextMenuItem中原本可以显示的图片无法显示

原因:和ApplicationBar里的按钮图片无法显示的原因一样,微软真是应该解决这个问题,至少把图片的默认BuildAction改成Content。

解决:把BuildAction改成Content就好了。

难题3:实现了INotifyPropertyChanged接口,但绑定目标的数据未更新

原因:调式发现PropertyChanged事件的值为null,因此不会走下面通知属性变化的流程。

解决:一开始是在页面构造函数里给DataContext赋值的,后来放到页面的Load事件处理函数中,问题解决。

难题4:TextBox中文字透明度渐变不能及时响应

原因:如果你改了TextBox的文字,会实时响应,但如果是Foreground.Opacity属性,则要等到再有TextBox控件获得焦点后才会响应。

解决:让TextBox控件获得焦点,透明度渐变就会开始。但是这样会使得SIP(Soft Input Panel)弹出来,即便你立刻再把Focus移到别的控件上,SIP也会闪一下,影响体验。

解决:让TextBox.IsReadOnly=true,就不会弹出SIP了。只要以下三行代码:

textBox1.IsReadOnly=true;

textBox1.Focus();

textBox1.IsReadOnly=false;

难题5:TextBox的滚动条失效

原因:这应该是微软的一个设计缺陷。

解决:那么在需要编辑长文本时怎么办呢。另一个缺陷也不得不提,就是RichTextBox的IsReadOnly不能设置为true,否则会在运行时解析XAML失败。或换用webbrower打开一个自制的内嵌input的页面,这种做法太费周折。

最终也没有完美解决。给TextBox外层套一个ScrollViewer,但滑动后会弹回到输入光标所在的位置,即还原到滑动之前的视图。网上说如果是TextBlock的话,给TextBlock外层套上一个Grid就行了。<ScrollViewer><Grid><TextBlock/></Grid></ScrollViewer>,但是TextBox试过不成功。哪位高人知道多谢指点。不过也由此可见,在移动应用上还是不要让用户输入太多文字。

难题6:在TextBox中输入英文没有单词自动提示

原因:没有设置InputScope属性。但奇怪的是中文是有词提示的。

解决:将InputScope属性设为Text。