(20)BrowserHttpWebRequest 被移出--------------------------------------------------------------------------------
一个新的HttpWebRequest类被添加,并且BrowserHttpWebRequest类/实现已经被移出.
HttpWebRequest request = new BrowserHttpWebRequest(new Uri("
http://Contoso.com"));
HttpWebResponse response = request.GetResponse();
Stream content = response.GetResponseStream();
using (XmlReader reader = XmlReader.Create(new StreamReader(content)))
{
while (reader.Read())
{
if ((reader.IsStartElement()) && ("item" == reader.LocalName))
{
using (XmlReader itemReader = reader.ReadSubtree())
{
while (itemReader.Read())
{
if (itemReader.IsStartElement())
{
if ("title" == itemReader.LocalName)
{
}
else if ("link" == itemReader.LocalName)
{
}
}
}
}
}
}
}
response.Close();现在
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(new Uri("
http://contoso.com"));
request.BeginGetResponse(new AsyncCallback(ResponseCallback), request);
// AsyncCallback called back on UIThread
private void ResponseCallback(IAsyncResult asyncResult)
{
HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);
Stream content = response.GetResponseStream();
using (XmlReader reader = XmlReader.Create(new StreamReader(content)))
{
while (reader.Read())
{
if ((reader.IsStartElement()) && ("item" == reader.LocalName))
{
using (XmlReader itemReader = reader.ReadSubtree())
{
while (itemReader.Read())
{
if (itemReader.IsStartElement())
{
if ("title" == itemReader.LocalName)
{
}
else if ("link" == itemReader.LocalName)
{
}
}
}
}
}
}
}
content.Close();
}
--------------------------------------------------------------------------------
(21)托管的MediaElement/Image.SetSource(downloader, partName)被移出--------------------------------------------------------------------------------
Image.SetSource(DependencyObject downloader, string partName)和MediaElement.SetSource(DependencyObject downloader, string partName)方法已经被移出.为得到一个从一个zip流中夺取的 Part,你应该使用WebClient的GetResourceStream.看下面:
Downloader downloader = new Downloader();
downloader.Open("GET", "
http://foo.com/myimages.zip";);
downloader.Completed += new EventHandler(downloader_Completed);
downloader.Send();
void downloader_Completed(object sender, EventArgs e)
{
MediaElement mediaElement = new MediaElement();
Downloader downloader = (Downloader)sender;
mediaElement.SetSource(downloader, "image1.jpg");
}
现在
WebClient webClient = new WebClient();
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
webClient.OpenReadAsync(new Uri("
http://foo.com/myimages.zip";));
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
MediaElement mediaElement = new MediaElement();
if ((e.Error == null) && (e.Cancelled == false))
{
StreamResourceInfo zipResourceInfo = new StreamResourceInfo(e.Result, null);
StreamResourceInfo imageResourceInfo = Application.GetResourceStream(zipResourceInfo, new Uri("image1.jpg"));
mediaElement.SetSource(imageResourceInfo.Stream);
}
}
--------------------------------------------------------------------------------
(22)SetValue和GetValue的变化--------------------------------------------------------------------------------
DependencyObject.SetValue不再是泛化.
this.ClipName.SetValue<double>(TextBlock.FontSizeProperty, ((double) this.ClipName.GetValue(TextBlock.FontSizeProperty)) - 1);
this.ClipName.SetValue<string>(TextBlock.ForegroundProperty, "#FF2F2F2F");
this.ClipDate.SetValue<string>(TextBlock.ForegroundProperty, "#FF2F2F2F");
this.ClipLength.SetValue<string>(TextBlock.ForegroundProperty, "#FF2F2F2F");现在
this.ClipName.SetValue(TextBlock.FontSizeProperty, ((double) this.ClipName.GetValue(TextBlock.FontSizeProperty)) - 1);
this.ClipName.SetValue(TextBlock.ForegroundProperty, "#FF2F2F2F");
this.ClipDate.SetValue (TextBlock.ForegroundProperty, "#FF2F2F2F");
this.ClipLength.SetValue (TextBlock.ForegroundProperty, "#FF2F2F2F");
当textblock.FontFamily返回一个FontFamily对象时textblock.GetValue(FontFamilyProperty)使用返回值一个字符串.上面GetValue行为已经有改变它返回的是一个FontFamily对象.类似的,FontWeight, FontStyle, FontStretch和TextDecorations也同样的一个方法.
if (textblock.GetValue(FontStyleProperty) == 3)现在
if (textblock.GetValue(FontStyleProperty) == FontStyles.Italic)
--------------------------------------------------------------------------------
(23)Miscellaneous API 的变化--------------------------------------------------------------------------------
ArcSegment.Size 方法是从Point到Size.
LoadContent方法将从FrameworkTemplate到Data Template
添加一个TileMode枚举进入System.Windows.Media,并且修改TileBrush.TileMode使用它替换double.
下面的功能已经从HtmlPage中移到HtmlWindow:CurrentBookmark, Alert/Confirm/Eval/Prompt, CreateInstance, Navigate*/NavigateToBookmark.
下面功能从HtmlPage中移动到HtmlDocument中:Submit, Cookies, QueryString, DocumentUri.
Scriptable attribute已经分为两个attribute ScriptableTypeAttribute和ScriptableMemberAttribute.开发者当前的类使用Scriptable的只需要该为ScriptableTypeAttribute.开发者当前类的成员使用的是Scriptable,只需要将改为ScriptableMemberAttribute.
XmlUrlResolver被移出.
OpenFileDialog.Title被移出.
System.Windows.WebApplication被移出.开发者应该被一个新的System.Windows.Application类型替换.
UIElement::GetRenderSize被固定(返回Int32,和是绝对的访问器),是read-only,并且依赖的属性是私有的.