

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、silverlight入門教程 資料,教程,編程,文集 本文由xuenhua2021貢獻 pdf文檔可能在wap端掃瞄體驗不佳。建議您優先選擇txt,或下載源文件到本機查看。一步一步學 silverlight 2 系列(1) :創建一個基本的 silverlight 應用 2 一步一步學 silverlight 2 系列(2) :基本控件 9 一步一步學 silverlight 2 系列(3) :界面布局 16 一步一步學 silverlight 2 系列(4) :鼠標大事處理 26 一步一步學 silverlight 2 系列(5) :實現簡潔的拖放功能 35 一步一步學 silverlig
2、ht 2 系列(6) :鍵盤大事處理 40 一步一步學 silverlight 2 系列(7) :全屏模式支持 45 一步一步學 silverlight 2 系列(8) :使用樣式封裝控件觀感 50 一步一步學 silverlight 2 系列(9) :使用控件模板 55 一步一步學 silverlight 2 系列(10) :使用用戶控件 63 一步一步學 silverlight 2 系列(11) :數據綁定 70 一步一步學 silverlight 2 系列(12) :數據與通信之 webclient 81 一步一步學 silverlight 2 系列(13) :數據與通信之 webreq
3、uest 90 一步一步學 silverlight 2 系列(14) :數據與通信之 wcf 97 一步一步學 silverlight 2 系列(15) :數據與通信之 asmx 107 一步一步學 silverlight 2 系列(16) :數據與通信之 json 117 一步一步學 silverlight 2 系列(17) :數據與通信之 data services 126 一步一步學 silverlight 2 系列(18) :綜合實例之 rss 閱讀器 137 一步一步學 silverlight 2 系列(19) :如何在 silverlight 中與 html dom 交互(上) 1
4、47 一步一步學 silverlight 2 系列(20) :如何在 silverlight 中與 html dom 交互(下) 156 一步一步學 silverlight 2 系列(21) :如何在 silverlight 中調用 javascript 168一步一步學 silverlight 2 系列(1):創建一個基本的 silverlight 應用概述silverlight 2 beta 1 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 j
5、son,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight 2 開發. 本文為系列第一篇創建一個基本的 silverlight 2 應用,不能免俗,從最簡潔的 hello word 開頭.建立項目安裝完 silverlight 2 beta 1 之后打開 vs2021,打開新建項目對話框,可以看到 silverlight applica tion 項目模板.silverlight 應用不能夠獨立運行,之后彈出的對話框中可供我們選擇創建一個 web site 或者 web appli
6、cation project 用來托管 silverlight 應用程序.這里我們選擇創建一個 web application project,創建完成后的項目結構如下所示:理解.xap 文件在建立一個 silverlight 應用程序后,我們什么都不做,直接編譯一下整個解決方案,可以看到在資源管理 器中多出了一個 資料,教程,編程,文集 clientbin 的文件夾,并在下面添加了一個 terrylee.silverlightdemo2.xap 的文件. 該文件是一個標準的.net 程序集, 在編譯的時候全部的 xaml 標識和資源文件如圖片等都會包含在里面, 采納了標準的 zip 壓縮算法
7、,以削減客戶端下載的文件體積.拷貝一份該文件,并且修改后綴名.xap 為. zip,并且解壓縮,可以看到里面包含了一些 dll 文件和一個 appmanifest.xaml:再打開 terrylee.silverlightdemo2testpage.aspx 文件,在頁面的頂部引入了 system.web.silverl ight 程序集,支持控件:% register assembly=system.web.silverlight namespace=system.web.ui.silverlight controls tagprefix=asp %控件的聲明如下,其中屬性 source 屬
8、性指定了剛才編譯生成的.xap 文件的路徑:創建一個 hello word 程序現在我們創建一個簡潔的 hello word silverlight 程序,使用如下 xaml 創建一個簡潔的按鈕:運行后效果如下:為按鈕添加 click 大事,在 xaml 編輯器中輸入大事名稱 click 之后,再按 tab 鍵將會使用默認的命名方 法生成大事處理方法:打開 page.xaml.cs 文件后,可以看到已經生成了對應的大事處理方法,現在就可以用熟識的 c#來編寫 處理程序了,如單擊按鈕時我們轉變按鈕的背景色和文字:private void mybutton_click(object sender,
9、 routedeventargs e) this.mybutton.content = clicked!; this.mybutton.background = new solidcolorbrush(colors.red); 再運行上面的程序并單擊按鈕,按鈕的文字及背景色發生了變化:結束語本篇文章是使用 visual studio 2021 開發 silverlight 2 應用程序的一個入門, 信任大家都已經看過 sc ottgu 的文章已經有所了解.但是為了整個系列完整起見,還是做了一下重復的勞動.一步一步學 silverlight 2 系列(2):基本控件概述silverlight 2
10、 beta 1 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 json,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight 2 開發.本文為系列文章其次篇學習幾個基本的控件. 在 silverlight 2 中,供應了大量的控件,包括 button,calendar ,checkbox ,datagrid ,dat epicker ,g
11、ridsplitter ,hyperlinkbutton ,listbox ,radiobutton ,scrollviewer ,slider , togglebutton,tooltip ,watermarkedtextbox 等,本文將敘述其中的幾個控件之用法.控件之 togglebutton翻轉效果在 ajax 時代已經相當多了,silverlight 中內置了 togglebutton 控件,可以使用如下 xaml 代碼聲明一個 togglebutton:運行后界面如下:單擊按鈕后,控件效果外觀效果將會轉變:togglebutton 控件有一個很重要的屬性 isthreestate,
12、指示控件是否保持三種狀態,如設為 false 資料,教程,編程,文集 ,則 只會保持兩種狀態. 控件之 watermarkedtextboxwatermarkedtextbox 即水印效果文本框,可以在文本框未獲得焦點之前顯示一段文字提示信息,也可 以顯示其它的控件.如下面的 xaml 中,在第一個 watermarkedtextbox 中指定水印效果為顯示一段 文字提示please enter password,而其次個則指定水印效果為一張圖片:運行后效果如下所示:單擊其中一個文本框:控件之 scrollviewerscrollviewer 控件使用特別簡潔,當其中顯示的內容超過它自身的大小
13、時,就會有滾動條消失.通過屬性 horizontalscrollbarvisibility 和 verticalscrollbarvisibility 來掌握縱向和橫向滾動條是否消失:運行上面的示例:控件之 tooltiptooltip 控件許多時候都用于其它控件的內嵌控件,如 button 控件的 tooltip 附加屬性等.聲明 toolti p 控件如下面的 xaml 所示,當鼠標放上按鈕時顯示一個簡潔的信息提示:運行后鼠標放上按鈕時效果:結束語本文簡潔的演示了 silverlight 2 中的幾個控件的使用,對于 datagrid 和 listbox 等控件一般用來顯示 列表數據,將會
14、在后面的數據綁定中敘述,而其它的諸如 button,textblock 等控件的使用特別簡潔, 這里不再敘述.一步一步學 silverlight 2 系列(3):界面布局概述silverlight 2 beta 1 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 json,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight 2 開發. 本
15、文為系列文章第三篇,學習 silverlight 2 中的界面布局,silverlight 2 中新增加了 grid 和 panel 兩 個布局容器,使得界面布局更加的強大和敏捷.canvas 面板canvas 是在 silverlight 1.0 時代就有的一種基礎布局面板, 它采納肯定坐標定位. 可以使用附加屬性 (a ttached property)對 canvas 中的元素進行定位,通過附加屬性我們指定控件相對于其直接父容器 ca nvas 控件的上,下,左,右坐標的位置.如下面的 xaml 聲明白兩個矩形,它們分別相對于父容器 can vas 的左邊距是 50,相對于父容器 can
16、vas 的上邊距分別是 50 和 150:運行后界面的效果如下所示:除了上面我們用到的 canvas.top 和 canvas.left 兩個附加屬性外,還有一個 canvas.zindex 附加屬 性.假如指定了兩個控件相對于父容器 canvas 同樣的邊距,則后面聲明的控件父掩蓋前面聲明的控件. 這時我們可以使用 canvas.zindex 屬性來轉變它們的顯示挨次,如下面的 xaml 聲明:canvas background=#46461f rectangle fill=#0099ff width=160 height=80 canvas.top=100 canvas.left=100r
17、ectangle fill=#ff9900 width=160 height=80 canvas.top=100 canvas.left=100/ 資料,教程,編程,文集 /canvas 指定兩個矩形相對于父容器 canvas 的邊距相同,這時默認的后聲明的橙色矩形會掩蓋藍色矩形:指定 canvas.zindex 為 1canvas background=#46461f rectangle fill=#0099ff width=160 height=80 canvas.top=100 canvas.left=100 canvas.zindex=1/rectangle fill=#ff9900
18、width=160 height=80 canvas.top=100 canvas.left=100/ /canvas將會讓藍色矩形顯示在上面,值最大的顯示在最上面:stackpanelstackpanel 支持用行或列的方式來進行頁面布局,默認狀況下全部的子元素會垂直的排列顯示,如下面 的 xaml 聲明三個矩形:rectangle fill=#0099ff stroke=white width=100 height=50 margin=10/ rectangle fill=#0099ff stroke=white width=100 height=50 margin=10/ rectang
19、le fill=#0099ff stroke=white width=100 height=50 margin=10/運行后在界面顯示效果如下:當然我們也可以指定為水平排列,通過 orientation 屬性指定:rectangle fill=#0099ff stroke=white width=100 height=50 margin=10/ rectangle fill=#0099ff stroke=white width=100 height=50 margin=10/ rectangle fill=#0099ff stroke=white width=100 height=50 mar
20、gin=10/運行后界面顯示效果如下:在這里為了讓各個控件之間有肯定的距離,使用了 margin 屬性,該屬性類似于 html 中的 margin.gridgrid 控件類似與 html 中的 table,只不過子元素不用放在單元格中.通過grid.rowdefinitions 和 grid.columndefinitions來定義 grid 的行和列,使用 grid.row 和 grid.column 兩個附加屬性 指定子元素在 grid 中顯示的位置,這是一種特別敏捷的布局方式.如下面的 xaml 聲明:grid x:name=layoutroot background=#46461f s
21、howgridlines=true grid.rowdefinitions rowdefinition height=120/ rowdefinition height=*/ /grid.rowdefinitions grid.columndefinitions columndefinition width=100/ columndefinition width=*/ /grid.columndefinitionstextblock grid.row=0 grid.column=0 text=username: verticalalignment=cen ter foreground=whit
22、e/textblock textblock grid.row=1 grid.column=0 text=password: verticalalignment=cen ter foreground=white/textblock textbox grid.row=0 grid.column=1 width=200 height=30 horizontalalignme nt=left/textbox textbox grid.row=1 grid.column=1 width=200 height=30 horizontalalignme nt=left/textbox /grid定義一個兩行
23、兩列的 grid,做一個簡潔的用戶登錄的布局,為了明顯起見,把 showgridlines 屬性設為 true,以便能夠顯示出邊框線.同時,我們指定了第一行的高度為 120,而其次行的則是剩余的高度,用 *來指定.運行后效果如下:綜合實例分別了解了上面的三個布局控件,接下來我們看一個綜合實例,如何完成如下的一個取色器:首先我們添加一個兩行兩列的 grid 控 資料,教程,編程,文集 件,分別指定行高和列寬: grid x:name=layoutroot background=white grid.columndefinitions columndefinition width=260 / co
24、lumndefinition width=* / /grid.columndefinitions grid.rowdefinitions rowdefinition height=120 / rowdefinition height=120 / /grid.rowdefinitions /grid添加顏色顯示區域,用一個矩形顯示,放入 grid 的第 0 行第 1 列:rectangle grid.row=0 grid.column=1 x:name=previewcolorfill=#ff6600 margin=10 stroke=#666666 strokethickness=2 /再添加
25、顏色值顯示區,嵌套一個 stackpanel 控件,讓它里面的子控件垂直顯示:textblock fontsize=12color/textblock textbox x:name=hexcolor width=160 height=30 text=#ff6600 margin=10,5 fontsize=11/左邊用四個 silder 控件和四個 textblock 控件顯示,需要對 grid 的行進行合并 grid.rowspan 屬性:textblock text=alpha fontsize=12 margin=10,15,0,0/ textblock text=red fontsiz
26、e=12 margin=10,15,0,0/ textblock text=green fontsize=12 margin=10,15,0,0/ textblock text=blue fontsize=12 margin=10,15,0,0/這樣我們就完成了上面這樣相對簡單的界面布局,對 slider 控件添加大事處理程序:private void redslider_valuechanged(object sender, routedpropertychangedeventargsd ouble e) color color = color.fromargb(byte)alphaslid
27、er.value, (byte)redslider.value, (b yte)greenslider.value, (byte)blueslider.value);previewcolor.fill = new solidcolorbrush(color); hexcolor.text = color.tostring(); 運行后,可以選取不同的顏色值:結束語關于界面布局就說到這里,在 silverlight 2 中,通過上面的三種布局控件相結合,可以進行特別強大和 敏捷的界面布局.一步一步學 silverlight 2 系列(4):鼠標大事處理概述silverlight 2 beta 1
28、 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 json,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight 2 開發. 本文為系列文章第四篇,學習 silverlight 2 中的鼠標大事處理,支持的鼠標大事包括 mousemove ,m ouseenter ,mouseleave ,mouseleftbuttondown,mouse
29、leftbuttonup.聲明大事對于鼠標大事我們可以附加到任何 silverlight 對象上面,如下面的 xaml 聲明,為兩個圓形添加上 mou seenter 和 mouseleave 大事:canvas background=#46461f ellipse width=120 height=120 fill=orange canvas.top=60 canvas.left=80 mouseenter=onmouseenter mouseleave=onmouseleave/ellipse width=120 height=120 fill=orange canvas.top=60 c
30、anvas.left=280 mouseenter=onmouseenter mouseleave=onmouseleave/ /canvas編寫大事處理程序,鼠標放上去時和鼠標移開時分別轉變圓形的填充色: 資料,教程,編程,文集 void onmouseenter(object sender, mouseeventargs e) ellipse ell = sender as ellipse; ell.fill = new solidcolorbrush(colors.yellow); void onmouseleave(object sender, mouseeventargs e) el
31、lipse ell = sender as ellipse; ell.fill = new solidcolorbrush(colors.green); 運行后效果如下:分別在兩個圓形上放上鼠標并移開后如下所示:使用代碼管理大事除了在 xaml 中聲明大事外,也可以直接使用代碼來注冊大事,簡潔的修改一下上面的 xaml 文件,去掉 大事的聲明并為兩個圓形分別加上 name:canvas background=#46461f ellipse x:name=ellipse1 width=120 height=120 fill=orange canvas.top=60 canvas.left=80/
32、ellipse x:name=ellipse2 width=120 height=120 fill=orange canvas.top=60 canvas.left=280/ /canvas在代碼中進行大事注冊:public partial class page : usercontrol public page() initializecomponent(); ellipse1.mouseenter += new mouseeventhandler(onmouseenter); ellipse1.mouseleave += new mouseeventhandler(onmouseleave
33、); ellipse2.mouseenter += new mouseeventhandler(onmouseenter); ellipse2.mouseleave += new mouseeventhandler(onmouseleave); void onmouseenter(object sender, mouseeventargs e) ellipse ell = sender as ellipse; ell.fill = new solidcolorbrush(colors.yellow); void onmouseleave(object sender, mouseeventarg
34、s e) ellipse ell = sender as ellipse; ell.fill = new solidcolorbrush(colors.green); 運行后可以看到跟上面一樣的效果:大事數據全部的鼠標大事都使用 mousebuttoneventargs 和 mouseeventargs 作為大事數據,通過這兩個參數 可以獵取相關大事數據,使用 getposition 方法或者 source,handled 屬性.如下面的 xaml 聲明:canvas background=#46461f rectangle fill=orange stroke=white strokethi
35、ckness=2 canvas.top=40 canvas.left=130 width=240 height=120 mousemove=rectangle_mousemove/ textblock x:name=status foreground=white text=status canvas.left=100 canvas.top=200/ /canvas為矩形添加 mousemove 大事處理,在鼠標移動時我們獵取當前坐標位置,并顯示出來:private void rectangle_mousemove(object sender, mouseeventargs e) point p
36、 = e.getposition(e.source as frameworkelement); status.text = string.format(坐標位置(0:1),p.x,p.y); 運行后在矩形中移動鼠標,效果如下:路由大事在 silverlight 中,供應了大事路由,使得我們可以在父節點上接收和處理來自于子節點的大事,silverli ght 中的路由大事采納了冒泡路由策略.在鼠標大事中 mouseleftbuttondown ,mouseleftbuttonu p ,mousemove 三個大事都支持路由大事,而 mouseenter,mouseleave 兩個大事不支持.下面
37、的 x aml 中我們為 canvas 對象聲明白一個 mouseleftbuttondown 大事:canvas x:name=parentcanvas background=#46461f mouseleftbuttondown=parentcanvas_mouseleftbuttondown rectangle 資料,教程,編程,文集 x:name=reca fill=orange stroke=white strokethickness=2 canvas.top=40 canvas.left=60 width=160 height=100/ rectangle x:name=recb
38、fill=lightblue stroke=white strokethickness=2 canvas.top=40 canvas.left=240 width=160 height=100/ textblock x:name=status foreground=white text=status canvas.left=100 canvas.top=200/ /canvas添加 mouseleftbuttondown 大事處理程序,顯示當前鼠標按下時的坐標,并顯示源控件名稱:private void parentcanvas_mouseleftbuttondown(object sende
39、r, mousebuttoneventargs e) string msg = x:y = + e.getposition(sender as frameworkelement).tostring(); msg += from + (e.source as frameworkelement).name; status.text = msg; 運行后在 reca 上按下鼠標:在 canvas 上按下鼠標:結束語本文簡潔介紹了 silverlight 2 中關于鼠標大事處理的一些學問,包括大事注冊,獵取大事數據,路由事 件等.在下一篇中,我們將使用這些鼠標大事來實現一個簡潔的拖放功能.一步一步學
40、silverlight 2 系列(5):實現簡潔的拖放功能概述silverlight 2 beta 1 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 json,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight 2 開發.本文為系列文章第五篇,利用前面講過的鼠標大事處理實現簡潔的拖放功能.預備 xaml在實現拖放功能中,分為三個步驟:
41、1.按下鼠標,觸發 mouseleftbuttondown 大事,選擇要拖動的對象. 2.移動鼠標,觸發 mousemove 大事,移動選擇的對象. 3.放開鼠標,觸發 mouseleftbuttonup 大事,停止捕獲大事. 做一個簡潔的界面,用一個按鈕來顯示拖放,如下 xaml 聲明:canvas background=#46461ftextblock text=拖動我 verticalalignment=center margin=10/t extblock /canvas這里為了界面顯示效果,使用了控件模板,后續會特地講到.開頭拖放操作開頭拖放操作,實現 mouseleftbutton
42、down 大事處理程序,用兩個全局變量來記錄當前鼠標的位置和 鼠標是否保持移動.bool trackingmousemove = false; point mouseposition;void onmousedown(object sender, mousebuttoneventargs e) frameworkelement element = sender as frameworkelement; mouseposition = e.getposition(null); trackingmousemove = true; if (null != element) element.captu
43、remouse(); element.cursor = cursors.hand; 移動對象移動對象,實現 mousemove 大事處理程序,計算元素的位置并更新,同時更新鼠標的位置.void onmousemove(object sender, mouseeventargs e) frameworkelement element= sender as frameworkelement; if (trackingmousemove) double deltav = e.getposition(null).y - mouseposition.y; double deltah = e.getpos
44、ition(nu 資料,教程,編程,文集 ll).x - mouseposition.x; double newtop = deltav + (double)element.getvalue(canvas.topproperty); double newleft = deltah + (double)element.getvalue(canvas.leftproperty); element.setvalue(canvas.topproperty, newtop); element.setvalue(canvas.leftproperty, newleft);mouseposition = e
45、.getposition(null); 完成拖放操作完成拖放操作,實現 mouseleftbuttonup 大事處理程序.void onmouseup(object sender, mousebuttoneventargs e) frameworkelement element = sender as frameworkelement; trackingmousemove = false; element.releasemousecapture();mouseposition.x = mouseposition.y = 0; element.cursor = null;效果顯示最終,完成后的效
46、果如下拖動按鈕結束語本文實現了一個簡潔的拖放功能(示例來自于 silverlight 2 sdk),點擊下載文本示例代碼.一步一步學 silverlight 2 系列(6):鍵盤大事處理概述silverlight 2 beta 1 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 json,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight
47、 2 開發. 本文為系列文章第六篇,介紹 silverlight 中的鍵盤處理大事,在 silverlight 2 中,支持 keydown 和 k eyup 兩個大事.聲明大事全部的大事聲明過程都是一樣的,在 xaml 中或者是在代碼中進行注冊.canvas x:name=layoutroot background=#46461f ellipse x:name=ellipse width=120 height=120 fill=orange canvas.top=50 canvas.left=160 stroke=white strokethickness=2 keyup=ellipse_k
48、eyup keydown=ellipse_keydown/ /canvas或者在代碼中注冊:public partial class page : usercontrol public page() initializecomponent(); this.ellipse.keyup += new keyeventhandler(ellipse_keyup); this.ellipse.keydown += new keyeventhandler(ellipse_keydown);private void ellipse_keyup(object sender, keyeventargs e)
49、private void ellipse_keydown(object sender, keyeventargs e) 使用大事參數 keyeventargs使用大事參數可以獵取到大事數據,可以使用的屬性有 key,platformkeycode,handled,source.private void ellipse_keyup(object sender, keyeventargs e) if (e.key = key.r) / else if(e.key = key.ctrl e.key = key.u) / 在大事數據中,handled 有時候特別有用,可以用來推斷大事是否已經處理.鍵盤
50、路由大事鍵盤大事 keydown 和 keyup 都支持路由大事,如下面的示例.canvas x:name=layoutroot background=#46461f keyup=layoutroot_keyup textbox x:name=textbox width=200 height=40 canvas.top=80 canvas.left=80/ textblock x:name=status foreground=white text=statuscanvas.left=80 canvas.top=200/ /canvas為 canvas 注冊了一個 keyup 大事,編 資料,教
51、程,編程,文集 寫大事處理程序. private void layoutroot_keydown(object sender, keyeventargs e) if (e.key != key.unknown) string msg = the key + e.key.tostring(); msg += was pressed while focus was on + (e.source as frameworkelement). name; statustextblock.text = msg; 運行程序,當文本框獲得焦點并輸入 t 時按鈕獲得焦點結束語關于鍵盤大事都簡潔的介紹到這兒,盼望
52、對大家有用.一步一步學 silverlight 2 系列(7):全屏模式支持概述silverlight 2 beta 1 版本發布了,無論從 runtime 還是 tools 都給我們帶來了許多的驚喜,如支持框 架語言 visual basic, visual c#, ironruby, ironpython,對 json,web service,wcf 以及 s ockets 的支持等一系列新的特性.一步一步學 silverlight 2 系列文章帶您快速進入 silverlight 2 開發. 本文為系列文章第七篇,介紹如何在 silverlight 2 中使用全屏模式.實現全屏模式全屏模
53、式有時候是特別有用的,在 silverlight 中,供應了很好的支持.實現起來也特別的簡潔,其實只有 一行代碼,編寫一個簡潔的 xaml.canvas background=#46461f /canvas引入命名空間using system.windows.interop;在按鈕單擊大事中添加實現代碼.private void togglebutton_click(object sender, routedeventargs e) content contentobject = application.current.host.content; contentobject.isfullscr
54、een = !contentobject.isfullscreen;獵取當前的 silverlight 插件content對象,并設置 isfullscreen 屬性.運行后單擊按鈕將會變為全屏 模式,再次單擊按鈕(或者按 esc 鍵)返回一般模式.捕獲相關大事有時候,我們需要在全屏模式和一般模式之間切換時,添加一個其它的代碼,這時可以使用大事 fullscre enchanged.public page() initializecomponent(); application.current.host.content.fullscreenchanged += new eventhandler
55、(content_ fullscreenchanged); 實現大事處理private void content_fullscreenchanged(object sender, eventargs e) content contentobject = application.current.host.content; if (contentobject.isfullscreen) togglebutton.background = new solidcolorbrush(colors.green); togglebutton.content = full screen mode; else
56、togglebutton.background = new solidcolorbrush(colors.red); togglebutton.content = normal mode; 在一般模式和全屏模式之間切換時,轉變按鈕的背景色和文字.運行后點擊按鈕:切換為一般模式:完整的代碼如下:public partial class page : usercontrol public page() initializecomponent(); application.current.host.content.fullscreenchanged += new eventhandler(cont
57、ent_fullscreenchanged); private void togglebutton_click(object sender, routedeventargs e) content contentobject = application.current.host.content; contentobject.isfullscreen = !contentobject.isfullscreen; private void content_fullscreenchan 資料,教程,編程,文集 ged(object sender, eventargs e) content contentobject = application.current.host.content; if (contentobject.isfullscreen) togglebutton.background = new solidcolorbrush(colors.green); togglebutton.co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銅冶煉過程中的環保設備研發進展預測分析研究考核試卷
- 金屬加工中的金屬加工設備維護管理信息系統考核試卷
- 礦石催化反應與催化機理考核試卷
- 銀冶煉中的冶煉廠智能化改造與生產調度考核試卷
- 針織品生產計劃與優化考核試卷
- 外科縫合穿針教學
- 口腔護士職業實踐心得
- 麻醉科每月醫療質量控制
- 冷菜制作的衛生與安全
- 妊娠高血壓疾病查房要點
- 大學語文試題及答案安徽
- 近七年寧夏中考化學真題及答案2024
- 2025至2030中國芳綸纖維行業需求預測及發展前景趨勢研究報告
- 十一學校小升初入學測試數學真題及詳細解答
- Braden 壓力性損傷評分表詳解
- 婚內賭博欠債協議書范本
- 造價咨詢項目管理制度
- 徐圩港區疏港航道整治工程報告書
- XX公司事故隱患內部報告獎勵制度1
- 兒童重癥肺炎護理常規
- 裝飾裝修施工方案
評論
0/150
提交評論