我最近开始使用Silverlight,立即注意到Silverlight BCL和完整的.Net和WPF之间的差异。我发现其他开发人员在网上发布了一些很好的解决方案,但有些更加复杂。你惊讶/失望地发现Silverlight类库缺少哪些功能/类,你是如何解决这些问题的?
我的一些问题是:
我的一些问题是:
- 没有事件触发的动画 - 我创建了一个帮助类,其中包含用于将我使用过的每种类型的动画附加到共享库中的故事板的静态方法,并且在应用程序级别上,我创建了具有静态方法的类,以将它们全部放在一起,就像在WPF中使用XAML时一样。到目前为止,这对于保持我的动画有组织并将逻辑从我的事件处理程序中删除是一个很好的解决方案。
- ScrollViewer不支持鼠标滚轮 - Adam Cooper创建了一个优秀的类库,添加了这个功能,只需要最少量的代码即可在任何Silverlight项目中实现。他的网站目前似乎无法访问,因此这里是Tim Heuer的博客链接,解释并链接到它(所以当他的网站恢复在线时,它将可用)。在Silverlight中为ScrollViewer添加鼠标滚轮支持
SortedDictionary<T, K>
缺失。 我发现这篇文章包含一个实现,但我自己没有使用它。- ResourceDictionary.MergedDictionaries不可用 - 再次...找到了一个实现这个功能并发布源代码的人,但它似乎有点复杂。我可能会稍微研究一下,但还没有这样做。在Silverlight中合并字典
- ZIndex附加属性仅适用于Canvas对象。 我在SO上发布了这个问题,有人建议将我的容器包装在一个集合中,如果需要的话。这感觉有点粗糙,但你必须做你必须做的事情。我的容器嵌套了三层,所以我可能需要将它们全部包裹在Canvas对象中,并为每个事件设置Canvas.ZIndex三次。丑陋如罪,但如果这是唯一的方法,那就这样吧。
我很感兴趣了解更有经验的Silverlight开发人员遇到的其他常见问题以及你们采取的解决方法。