亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WebBrowser控件在Windows Phone程序開發(fā)中的應(yīng)用

        2013-12-31 00:00:00王強(qiáng)
        西江月·上旬 2013年11期

        【摘 要】無(wú)論是在桌面級(jí)開發(fā)中,還是在手機(jī)端開發(fā)中,WebBrowser都是一個(gè)經(jīng)常會(huì)用到的控件。Windows Phone中的WebBrowser雖然遠(yuǎn)遠(yuǎn)沒有桌面版那么強(qiáng)大,但依然足夠應(yīng)付常規(guī)用途。本文就來(lái)介紹幾則Windows Phone中的WebBrowser控件的使用技巧。

        【關(guān)鍵詞】WebBrowser控件;Windows Phone程序

        1.顯示HTML片段

        WebBrowser的NavigateToString方法可以用來(lái)將一段HTML片段顯示在WebBrowser中。利用這個(gè)方法可以把WebBrowser當(dāng)作一個(gè)增強(qiáng)版的RichTextBox來(lái)使用,京東商城的Windows Phone客戶端在展示商品信息時(shí)就使用了這種技術(shù)。而且這種技術(shù)還有助于解決Windows Phone中TextBlock顯示長(zhǎng)文本的一個(gè)bug,具體表現(xiàn)為當(dāng)文本過(guò)長(zhǎng)時(shí),TextBlock只顯示文本的前半段內(nèi)容,后半段內(nèi)容不予顯示,但卻留出了位置(滾動(dòng)條還能到達(dá),非常詭異),而WebBrowser在顯示長(zhǎng)文本時(shí)就沒有這種困擾。

        但NavigateToString并不是完美的,假若傳入的字符串中包含中文(或其他UTF-8字符)的話,就會(huì)顯示為亂碼。解決這個(gè)問題的方法之一是提前對(duì)字符串進(jìn)行轉(zhuǎn)碼,但這樣做的代價(jià)是需要遍歷所有字符,其實(shí)只要把需要顯示的HTML片段簡(jiǎn)單構(gòu)造成HTML文件,存儲(chǔ)到獨(dú)立存儲(chǔ)中,然后再用WebBrowser以常規(guī)的方式打開即可解決這個(gè)問題。如下面的代碼所示:

        C#代碼

        using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())

        {

        if (!file.DirectoryExists(\"temp\"))

        file.CreateDirectory(\"temp\");|

        using (IsolatedStorageFileStream fs = new IsolatedStorageFileStream(\"temp\\review.html\", FileMode.Create, file))

        {

        string html = \"<!DOCTYPE html>\";

        html += e.Review.Summary;

        html += \"\";

        byte[] bytes = Encoding.UTF8.GetBytes(html);

        fs.Write(bytes, 0, bytes.Length);

        }

        }

        this.wb.Navigate(new Uri(\"temp\\review.html\", UriKind.Relative));

        2.禁止縮放

        WebBrowser支持縮放,但有時(shí)我們并不需要縮放功能,譬如在用它來(lái)解決TextBlock的長(zhǎng)文本bug時(shí)。

        如果需要禁用一切手勢(shì),可以將WebBrowser的IsHitTestVisible設(shè)置為False,但這樣做的后果是WebBrowser滑動(dòng)顯示內(nèi)容的功能都會(huì)失去。但如果僅僅想要禁用縮放功能,可以在WebBrowser將要顯示的HTML的Head中加入這樣下面的腳本:

        HTML代碼

        值得注意是Windows Phone 7.5以下版本的IE不支持initial-scale、minimum-scale和maximum-scale,而在最新的Windows Phone Mango更新中,除了initial-scale之外的其余屬性都已經(jīng)可以很好的支持了。

        3.接管橫向滑動(dòng)

        如果用WebBrowser來(lái)解決TextBlock的bug,那么還有一個(gè)問題需要注意,WebBrowser會(huì)接管橫向滑動(dòng)手勢(shì),用來(lái)移動(dòng)頁(yè)面位置,也就是說(shuō),假如你把WebBrowser方知道Pivot或Panorama控件中時(shí),就沒有辦法切換到其他Item了(除非從Header部分橫向滑動(dòng))。

        不過(guò)一般在用WebBrowser代替TextBlock時(shí),并需要它內(nèi)置的橫向滑動(dòng)功能(通常會(huì)禁用縮放),所以我們可以想辦法偵測(cè)發(fā)生在WebBrowser上的橫向滑動(dòng)手勢(shì),并用來(lái)修改Pivot或Panorama的SelectedIndex。所幸的是,Silverlight Toolkit For Windows Phone中有一個(gè)組件可以幫我們輕松的完成這項(xiàng)工作。

        首先在Xaml中添加GestureService.GestureListener:

        XAML代碼:

        在GestureService.GestureListener的Flick事件中修改Pivot或Panorama的SelectedIndex:

        C#代碼

        private void GestureListener_Flick(object sender, FlickGestureEventArgs e)

        {

        if (e.Direction.ToString() == \"Horizontal\")

        {

        this.p.SelectedIndex = 1;

        }

        }

        除了Flick之外,GestureService還支持Tap、Double Tap、Touch and Hold、Pan、以及Pinch and Stretch多種手勢(shì)。

        亚欧美日韩香蕉在线播放视频| 精品国产一区二区三广区| 蜜桃在线高清视频免费观看网址| 国产精品国产三级国产a| 久久国产劲暴∨内射| 欧美成人中文字幕| 国产精品成人黄色大片| 色婷婷精品久久二区二区蜜桃| 伊人激情av一区二区三区| 福利一区二区三区视频午夜观看| 国产av熟女一区二区三区老牛| 不卡一区二区视频日本| 正在播放东北夫妻内射| 精品国产18禁久久久久久久| 亚洲综合天堂av网站在线观看| 精品一区二区三区芒果| 少妇无码av无码专区线| 国产精品玖玖玖在线资源| 中文字幕色一区二区三区页不卡| 人人妻人人澡人人爽国产| 午夜三级a三级三点| 北岛玲中文字幕人妻系列| 蜜桃视频一区视频二区| 把女人弄爽特黄a大片| 亚洲综合一区无码精品| 国产对白刺激在线观看| 亚洲一区第二区三区四区| 国产裸体舞一区二区三区| 大陆一级毛片免费播放| 亚洲女同人妻在线播放| 国产精品无码素人福利| 亚洲精品久久久久久| 杨幂国产精品一区二区| 噜噜中文字幕一区二区| 免费观看又色又爽又湿的视频| 亚洲日韩精品A∨片无码加勒比| 在线视频精品少白免费观看| 久爱www人成免费网站| 国产日产高清欧美一区| 精品蜜桃一区二区三区| 欧美又大粗又爽又黄大片视频|