从Silverlight 2.0到3.0 的应用程序兼容性问题

     现在所有基于Silverlight 2.0开发的应用程序都会被强制升级到  silverlight 3.0插件 ,这个在程序开发过程中本不可避免,

但在升级中却遇到了最让人头痛的问题,3.0中有些地方的改进并不能保证对2.0应用程序的完全兼容,这给基于商业应用的网站带来的无疑是一场灾难。

唉,贸然使用非开源的新技术确实是需要付出代价的。。本文就此列出所有从2.0  3.0 版本升级过程中会对旧版本造成影响的所有注意的地方,谨此提醒大家一句,不要贸然使用非开源的框架,否则你的程序并不控制在自己手里,听说XP里不是发现了很多Hacker 么。。

1.     Silverlight 2 以来的重大更改

  • 1.1 System.Web.Silverlight.dll 已从 Silverlight SDK 中删除
  • 1.2 Silverlight 应用程序现在响应浏览器缩放
  • 1.3 弹出项 Tab 键更改
  • 1.4 ComboBox 弹出项剪切已修复
  • 1.5  PopupRenderTransform 更改后 Silverlight 始终重绘弹出项
  • 1.6 ContentPresenter.Content = "string" 不再更改 ContentTemplate 属性
  • 1.7 在使用空的 ContentTemplate 时,ContentControl 现在将忽略内容
  • 1.8 设置 ContentControl.Content 不会导致不需要的 OnApplyTemplate 调用
  • 1.9  ItemsSource 设置为具有 typeconverter 的枚举时,ComboBox  ContentControl 现在显示字符串,而非数字
  • 1.10 没有所选项的 ComboBox 采用额外的击键来选择第二个项
  • 1.11 HorizontalScrollBarVisibility  VerticalScrollBarVisibility 现在可以在 ComboBox  ListBox 的样式中设置
  • 1.12 ListBoxItem.HorizontalContentAlignment 现在受到重视
  • 1.13 ListBoxItem.Style 现在优先于 ListBox.ItemContainerStyle
  • 1.14  ListBox 内使用 Tab 键定位现在将焦点移到下一个控件,而非下一个 ListBox 
  • 1.15  PasswordBox/TextBox 中删除了 TemplatePart 声明
  • 1.16 TextBox 中的 TextAlignment 现在相对于文档而非 TextBox 工作
  • 1.17 只读 TextBox 的默认颜色已更改
  • 1.18 ENTER 键现在注重 Button.ClickMode,后者默认为 Release (KeyUp)
  • 1.19 Slider 控件的命中测试区域现在与其可见部分匹配
  • 1.20 clientaccesspolicy.xml 内的格式错误的 URL 现在导致该 URL 被忽略,而非文件的其余部分被忽略
  • 1.21 错误修复:更改 Opacity 没有始终导致重绘
  • 1.22 DataBinding 要求属性 setter 是公共的
  • 1.23 不允许在 SetBinding() 后更改 Binding.Path

2 .  Silverlight 3 Beta 以来的重大更改

  • 2.1 DockPanelWrapPanelExpanderHeaderedContentControlViewboxDataForm 迁移到了 Silverlight 工具包
  • 2.2 AutoCompleteBox:成员和类型重命名
  • 2.3 AutoCompleteBox 的新模板部件:Selector, typeof(Selector)
  • 2.4 AutoCompleteBox.TryGetSelectionAdapter(object o) 现在是 GetSelectionAdapterPart()
  • 2.5 AutoCompleteBoxToggleButton 类型的 DropDownToggle 模板部件已删除
  • 2.6 DataGrid RowGroupExpanding  RowGroupCollapsing 事件已删除
  • 2.7 DataGrid.SortDescriptions  GroupDescriptions 属性已删除
  • 2.8  ValidationSummary 而非 ListBox 显示 DataGrid 实体级别验证错误
  • 2.9 DataForm 更改
  • 2.10 针对 System.ComponentModel.dll  DataPager 的重大更改
  • 2.11 PagedCollectionView
  • 2.12 DataPagerAutomationPeer
  • 2.13 BindableAttribute  BindingDirection 已删除
  • 2.14  ValidationAttribute 的更改
  • 2.15 [CustomValidation] 方法的签名已更改
  • 2.16 框架仅支持导航到页面
  • 2.17  UriMapper 相关的框架重大更改
  • 2.18 效果文件 (.ps) 不再作为 Content 加载
  • 2.19 WriteableBitmap 更改
  • 2.20 RenderOptions.TextRenderingOptions 现在是 TextOptions.TextHintingMode
  • 2.21 透明平台扩展不在 Microsoft.com 上承载
  • 2.22 浏览器外 API 名称更改
  • 2.23 ExecutionStates.DetachedUpdatesAvailable 已删除
  • 2.24 Icon.Size 类型更改并且 <Icon Size="..."> 格式已更改
  • 2.25 XmlConvert.IsNCNameSurrogatePair()  IsStartNCNameSurrogatePair() 已删除
  • 2.26 SaveFileDialog.File -> SaveFileDialog.SafeFileName
  • 2.27 DataAnnotations.Validator 重大更改

3 . 升级重大更改

  • 3.1 OpenFileDialog.ShowDialog() 现在只能从用户启动的事件打开
  • 3.2 Tab 键定位处理和关联的回调从异步更改为同步
  • 3.3 弹出项内的鼠标事件现在提供相对于弹出项的位置,而非相对于整个应用程序的位置
  • 3.4 弹出项现在只能具有一个父级
  • 3.5 弹出项内的名称范围现在正常工作
  • 3.6 FindElementsInHostCoordinates 现在搜索弹出项
  • 3.7 删除了与在 ItemsControl 中替换项相关联的多余事件
  • 3.8 ScrollViewer 现在将滚动条位置固定到 ScrollableWidth/ScrollableHeight
  • 3.9 在设置了 Stretch 并且 Height / Width 未设置时,矩形和椭圆现在出现
  • 3.10 TextBlockTextBox  PasswordBox 的宽度现在向上舍入
  • 3.11 textblock.FontFamily = null 引发 ArgumentNullException
  • 3.12 空格不再在模板内的 Run 元素之间呈现
  • 3.13 RadioButton.GroupName 现在在模板外搜索 RadioButtons
  • 3.14 ComboBox 内容现在令 IsHitTestVisible="false"
  • 3.15 TextBox 现在注重 Opacity 属性
  • 3.16 具有空参数的 FrameworkElementAutomationPeer ctor 引发 NullReferenceException
  • 3.17 HyperlinkButton 现在将导航整个窗口,而不只是 Silverlight 位于其中的 IFRAME
  • 3.18 更正了在 Silverlight v2+ 应用程序不具有 XAP 文件扩展名时使用的基 URI
  • 3.19 Application.Current.Host.Source 现在返回绝对 URL,甚至在 .xap URL 具有查询字符串时也是如此
  • 3.20 ResourceDictionary 枚举错误已修复
  • 3.21 ReadOnlyObservableCollection 已从 System.Windows.Controls.Data.dll 迁移到 System.Windows.dll
  • 3.22 DataGridEndingEditEventArgs 已从 Silverlight SDK 中删除
  • 3.23 PollingDuplexHttpBinding 更改
  • 3.24 与删除事件处理程序有关的错误修复
  • 3.25 错误修复:允许 <Cursors>,而非 <Cursor>
  • 3.26 XAML 中的自定义附加属性要求 xmlns 为前缀
  • 3.27 错误修复:子类控制可能会加载错误的资源
  • 3.28 错误修复:在路径上的叶对象为空时不调用 ValueConverter
  • 3.32 指向 .xap 外的资源的相对 URL 现在相对于 .xap 文件,而非 HTML 
  • 3.33 不再支持在 SetBinding() 后设置 Binding 属性
  • 3.34 ContentPresenter 的子级现在只能具有一个父级
  • 3.35 Thumb 控件现在相对于绝对位置计算拖放,而非相对于其父级计算拖放
  • 3.36 DataGrid 不再默认选择第一项

 

更多内容请查看 Silverlight 3.0 SDK中文帮助文档,官方下载地址

 

你可能感兴趣的:(从Silverlight 2.0到3.0 的应用程序兼容性问题)