![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606de.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou2.gif)
1.卸载原有
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606yi.gif)
2.安装Beta 2相关组件
3.在打开原有
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
Control控件变化Control控件放在
![](/icons/62606System.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606System.gif)
![](/icons/62606de.gif)
![](/icons/62606System.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
![](/icons/62606de.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606dou.gif)
xmlns:my="clr-
:
.Windows.Controls;assembly=
.Windows.Controls"
并且需要修改对应命名空间下![](/icons/62606de.gif)
![](/icons/62606dou.gif)
<my:Button x:Name="myButton"/>
在Beta 2中![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
Tooltip
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606yi.gif)
BetweenShowDelayProperty
InitialShowDelayProperty
ShowDurationProperty
GetBetweenShowDelay
GetInitialShowDelay
GetShowDuration
SetBetweenShowDelay
SetInitialShowDelay
GetToolTip
SetShowDuration
Beta 1中
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
public
ToolTipService
{
public
readonly DependencyProperty ToolTipProperty;
public
void SetToolTip(DependencyObject element, object value);
}
对于如何使用ToolTipService如下代码所示:<Button ToolTipService.ToolTip="This is ToolTip text"/>
<Button Content="Button">
<ToolTipService.ToolTip>
<TextBlock Text="text"/>
</ToolTipService.ToolTip>
</Button>
或者ToolTipService.SetToolTip(myElementNeedingAToolTip,
TextBox
);
从Control控件中移除字体属性 在Beta 2中![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
FontFamily
FontSize
FontWeight
FontStyle
Foreground
FontStretch
现在如果在父元素中定义了它们
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
<UserControl x:Class="TerryLee.SilverlightBeta2Example.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300"
FontSize="16"
FontFamily="Trebuchet MS">
<Grid x:Name="LayoutRoot" Background="White">
……
</Grid>
</UserControl>
DatePicker和Calendar DatePicker和CalendarControl控件![](/icons/62606de.gif)
![](/icons/62606dou.gif)
Calendar
[Remove] bool AreDatesInPastSelectable
[Remove] Style DayStyle
[Remove] Style MonthStyle
[Remove] DateTime SelectableDateStart
[Remove] DateTime SelectableDateEnd
DatePicker
[Remove] bool AreDatesInPastSelectable
[Remove] DateTime SelectableDateStart
[Remove] DateTime SelectableDateEnd
Calendar和DatePicker
[Remove] bool IsEnabled {get;
![](/icons/62606set.gif)
[Remove] DateTime DisplayDateStart {get;
![](/icons/62606set.gif)
[Remove] DateTime DisplayDateEnd {get;
![](/icons/62606set.gif)
[Add] DateTimeRange DisplayRange {get;
![](/icons/62606set.gif)
ButtonBase类变化 在Beta 1中
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
public partial
ButtonBase : ContentControl
{
// ......
}
而在Beta 2中![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
public abstract
ButtonBase : ContentControl
{
// ......
}
并且移除了![](/icons/62606int.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
OnIsEnabledChanged
OnGotFocus
OnIsPressedChanged
IsFocused
IsMouseOver
IsMouseOverProperty
IsFocusedProperty
OnKeyDown
OnKeyUp
OnLostFocus
OnMouseEnter
OnMouseLeave
OnMouseLeftButtonDown
OnMouseLeftButtonUp
OnMouseMove
如果你曾经利用ButtonBase类开发过相关
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou2.gif)
TextBoxControl控件变化 在Beta 2中TextBoxControl控件支持带换行
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
<ControlTemplate
xmlns='http://schemas.microsoft.com/client/2007'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
<Border x:Name='ELEMENT_Content'"
BorderThickness='{TemplateBinding BorderThickness}'
BorderBrush='{TemplateBinding BorderBrush}'
Background='{TemplateBinding Background}'
Padding='{TemplateBinding Padding}'/>
</ControlTemplate>
Beta 2中TextBoxControl控件模板<ControlTemplate
xmlns='http://schemas.microsoft.com/client/2007'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
<Grid x:Name='RootElement'>
<Grid.Resources>
<SolidColorBrush x:Key='Background' Color='#FF003255'/>
<SolidColorBrush x:Key='BorderBrush' Color='#FF000000'/>
<SolidColorBrush x:Key='AccentBrush' Color='#FFFFFFFF'/>
<LinearGradientBrush x:Key='FocusedStrokeBrush'
StartPo
='0.5,0' EndPo
='0.5,1'>
<GradientStop Color='#B2FFFFFF' Off
='0'/>
<GradientStop Color='#51FFFFFF' Off
='1'/>
<GradientStop Color='#66FFFFFF' Off
='0.325'/>
<GradientStop Color='#1EFFFFFF' Off
='0.325'/>
</LinearGradientBrush>
<Storyboard x:Key='Normal State'>
<DoubleAnimation Storyboard.TargetName='FocusVisualElement'
Storyboard.TargetProperty='Opacity' To='0' Duration='0:0:0.0'/>
</Storyboard>
<Storyboard x:Key='Focused State'>
<DoubleAnimation Storyboard.TargetName='FocusVisualElement'
Storyboard.TargetProperty='Opacity' To='1' Duration='0:0:0.0'/>
</Storyboard>
</Grid.Resources>
<Rectangle StrokeThickness='.5' RadiusX='2'
RadiusY='2' Fill='{TemplateBinding Background}'/>
<Rectangle StrokeThickness='.5' RadiusX='2' RadiusY='2'
Stroke='#FF003255'/>
<Border x:Name='ContentElement' Padding='{TemplateBinding Padding}'/>
<Grid x:Name='FocusVisualElement' Opacity='0' IsHitTestVisible='False'>
<Rectangle RadiusX='1' RadiusY='1' Margin='2'
Stroke='{StaticResource AccentBrush}' StrokeThickness='1'/>
<Rectangle RadiusX='1' RadiusY='1'
Stroke='{StaticResource Background}' StrokeThickness='2'/>
<Rectangle RadiusX='1' RadiusY='1'
Stroke='{StaticResource FocusedStrokeBrush}' StrokeThickness='2'/>
</Grid>
</Grid>
</ControlTemplate>
如果你在Beta 1中定义了TextBox![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
Image和ImageBrush变化 Beta 2中移除了ExceptionRoutedEventHandler而采用泛型
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
Beta 1:
// Image
:
public event ExceptionRoutedEventHandler ImageFailed;
public double DownloadProgress { get;
;}
// ImageBrush
:
public event ExceptionRoutedEventHandler ImageFailed;
public double DownloadProgress { get;
;}
Beta 2:// Image
:
public event EventHandler<ExceptionRoutedEventArgs> ImageFailed;
// ImageBrush
:
public event EventHandler<ExceptionRoutedEventArgs> ImageFailed;
Control加上了边框属性 在Beta 2中![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
public abstract
Control : FrameworkElement
{
public Brush BorderBrush { get;
; }
public Thickness BorderThickness { get;
; }
}
ListBox变化 在Beta 2中![](/icons/62606dou.gif)
SelectedItemsProperty
SelectionModeProperty
SelectedItems
SelectionMode
OnGotFocus(RoutedEventArgs)
OnItemContainerStyleChanged(Style, Style)
OnKeyDown(KeyEventArgs)
OnLostFocus(RoutedEventArgs)
OnSelectedItemsChanged(IList, IList)
OnIsSelectionActiveChanged(Boolean, Boolean)
OnSelectedIndexChanged(Int32, Int32)
OnSelectedItemChanged(Object, Object)
OnSelectionChanged(SelectionChangedEventArgs)
OnSelectionModeChanged(SelectionMode, SelectionMode)
对于ListBoxItem移除了如下属性和事件:
OnGotFocus(RoutedEventArgs)
OnLostFocus(RoutedEventArgs)
OnMouseEnter(MouseEventArgs)
OnMouseLeave(MouseEventArgs)
OnMouseLeftButtonDown(MouseButtonEventArgs)
IsMouseOver
同时移除了ListBox
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
WatermarkedTextBoxControl控件 在Beta 1中加入
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606dou2.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou2.gif)
新
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606System.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
DataGridControl控件 非常幸运
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606dou2.gif)
扩展Control控件
![](/icons/62606chengxu.gif)
![](/icons/62606System.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
Calendar
DatePicker
GridSplitter
TabControl
如:
<UserControl
xmlns:my="clr-
:
.Windows.Controls;assembly=
.Windows.Controls.Extended"
x:Class="TerryLee.SilverlightBeta2Example.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300"
FontSize="16"
FontFamily="Trebuchet MS">
<Grid x:Name="LayoutRoot" Background="White">
<my:DatePicker x:Name="myDatePicker"></my:DatePicker>
<my:Calendar x:Name="myCalendar"></my:Calendar>
</Grid>
</UserControl>
Visual State Manager 在Silverlight 2 Beta2中引进![](/icons/62606de.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606yi.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou2.gif)
网络通信WCF通信 在Beta 2中
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
WebClient和HttpWebRequest Beta 2中允许使用WebClient上传数据
![](/icons/62606dou.gif)
![](/icons/62606diaoyong.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou2.gif)
Beta 1
public void Download![](/icons/62606kh.gif)
{
WebClient client =
WebClient
;
client.DownloadStringCompleted
DownloadStringCompletedEventHandler(
client_DownloadStringCompleted);
try
{
client.DownloadStringAsync(
Uri("http://Contoso.com/myfile.txt"));
}
catch (SecurityException ex)
{
// handle synchronous exception
}
}
void client_DownloadStringCompleted(
object sender, DownloadStringCompletedEventArgs e)
{
// Set the text content of a control to the result
MyControl.Text = e.Result;
}
Beta 2public void Download![](/icons/62606kh.gif)
{
WebClient client =
WebClient
;
client.DownloadStringCompleted
DownloadStringCompletedEventHandler(
client_DownloadStringCompleted);
client.DownloadStringAsync(
Uri("http://Contoso.com/myfile.txt"));
}
void client_DownloadStringCompleted(
object sender, DownloadStringCompletedEventArgs e)
{
try
{
// Set the text content of a control to the result
MyControl.Text = e.Result;
}
catch (SecurityException ex)
{
// handle asynchronous exception
}
}
LINQ to JSON支持 Beta 2中提供了LINQ to JSON![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606diaoyong.gif)
![](/icons/62606dou2.gif)
跨域Sockets Beta2现在允许跨域
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606diaoyong.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
Silverlight会查看目标服务器上是否存在这样
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606diaoyong.gif)
![](/icons/62606dou2.gif)
浏览器集成HtmlPage变化 Beta 1中HtmlPage提供了UnregisterScriptableObject思路方法
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
HtmlElement变化 Beta 1中可以使用HtmlElement.GetProperty和HtmlElement.GetAttribute思路方法来互相访问HTML DOM
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou2.gif)
隔离存储隔离存储空间大小 IsolatedStorage是Beta 1中提供
![](/icons/62606de.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
增加空间思路方法更名 Beta 2中隔离存储请求增加空间
![](/icons/62606de.gif)
![](/icons/62606kh.gif)
![](/icons/62606kh.gif)
![](/icons/62606dou.gif)
![](/icons/62606yinwei.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
Beta 1:
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication
;
storage.TryIncreaseQuotaTo(maxSize);
Beta 2: IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication
;
storage.IncreaseQuotaTo(maxSize);
新增按Site存储 在Beta 1下隔离存储只能按照应用![](/icons/62606chengxu.gif)
![](/icons/62606dou.gif)
Beta 2:
IsolatedStorageFile storage;
storage = IsolatedStorageFile.GetUserStoreForApplication
;
storage = IsolatedStorageFile.GetUserStoreForSite
;
应用![](/icons/62606chengxu.gif)
![](/icons/62606chengxu.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
Beta 1:
ApplicationSettings
tings = ApplicationSettings.Default;
tings.Add("myKey", myValue);
tings.Save
;
Beta 2 IsolatedStorageSettings
tings = IsolatedStorageSettings.ApplicationSettings;
tings.Add("myKey", myValue);
tings.Save
;
IsolatedStorageSettings
tings = IsolatedStorageSettings.SiteSettings;
tings.Add("myKey", myValue);
tings.Save
;
OpenFileDialog变化 Beta 1中OpenFileDialog.ShowDialog思路方法![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
其它APISetValue思路方法 在Beta 2中
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606dou2.gif)
Beta 1
myButton.SetValue(Canvas.LeftProperty, 100);
Beta 2 object left = 100;
myButton.SetValue(Canvas.LeftProperty, left);
当然本文整理总结还只是其中![](/icons/62606de.gif)
![](/icons/62606yi.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx
顺便说
![](/icons/62606yi.gif)
![](/icons/62606de.gif)
![](/icons/62606dou.gif)
![](/icons/62606de.gif)
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=50a9ec01-267b-4521-b7d7-c0dba8866434
最新评论