日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
Silverlight布局系統(tǒng)正確優(yōu)化方法

Silverlight的開發(fā)工具的使用之所以能被廣大開發(fā)者們所接受,除了其功能的強大之外,還有一點就是應用的靈活性。它的各種特點決定了其在這一領域中的領先地位。在這里我們將會為大家介紹一下Silverlight布局系統(tǒng)的優(yōu)化方法。#t#

我對Silverlight布局系統(tǒng)一直感到不滿,原因無他,太過羅嗦爾。它靈活是足夠靈活了,但對于界面布局并沒有提供一個簡潔的表達機制,使得即使非常常見的界面也總是生成一大坨又臭又長的XAML,寫得累,看的人更累。特別是和競爭對手Flex的布局機制比較,F(xiàn)lex可以說既靈活又簡單,Silverlight則是既靈活又麻煩。

Silverlight里面常用的布局容器幾乎都可以挑挑毛?。?/p>

Canvas:只支持絕對坐標布局使得Canvas在應用程序布局方面純粹是個雞肋,要求稍微靈活一點的界面就派不上用場了。Flex也有一個Canvas,不過Flex Canvas支持左/中/右對齊,并且可以指定絕對寬度或相對寬度,所以Flex Canvas比Silverlight Canvas要好用得多,在各種界面布局里也是常見的選擇。

StackPanel:StackPanel不支持Grid的百分比布局是很大的遺憾。很多時候,我只需要單行或單列布局,但控件則需要絕對/相對混合布局,StackPanel不能提供這種靈活性。這使得我不得不使用語法更加羅嗦的Grid。

Grid:如果和GridSplitter聯(lián)合做多面板布局的話,99%的情況下需要關心的無非是左右或上下兩個面板,而Grid和GridSplitter需要指定一大堆屬性才能正常工作,增加了無謂的負擔。

在忍受這些毛病很長時間以后,我終于決定拋開Silverlight的默認布局容器,自己寫一套更加方便的自定義Silverlight布局系統(tǒng)管理器。你可以猜到,我寫的這套容器很大程度上參考了Flex,甚至大部分類的命名都向Flex看齊——比如HBox、VBox。和Silverlight內置類沖突的則換個名字,比如FlexCanvas模擬了Flex的Canvas組件,HSplitBox相當于Flex HDevideBox,HeaderBox相當于Flex Panel。

編寫自定義容器實際上比原先想象的要簡單,無非是實現(xiàn)MeasureOverride/ArrangeOverride兩個方法而已。只是要考慮到各種布局情況需要仔細計算。另外一點不滿的地方是,創(chuàng)建Dependency Property的語法純粹是折磨人的工作。

這里僅舉一個常見的Silverlight布局系統(tǒng)例子,你可以比較一下用自定義布局可以比默認的布局系統(tǒng)節(jié)省多少代碼。

例子: 我們都很熟悉的瀏覽器地址欄,文本框隨容器自動擴展。

用Silverlight布局:

 
 
 
  1. < Grid>
  2. < Grid.ColumnDefinations>
  3. < ColumnDefination Width="Auto" />
  4. < ColumnDefination Width="*" />
  5. < ColumnDefination Width="Auto" />
  6. < /Grid.ColumnDefinations>
  7. < TextBlock Grid.Column="0" 
    Text="Address" />
  8. < TextBox Grid.Column="1" />
  9. < Button Grid.Column="2"
     Content="Go" />
  10. < /Grid>

自定義布局:

 
 
 
  1. < yh:HBox>
  2. < TextBlock Text="Address" />
  3. < TextBox yh:Box.Width="100%" />
  4. < Button Content="Go" />
  5. < /yh:HBox>

Silverlight布局系統(tǒng)的介紹就到這里,希望對大家有些幫助。


分享文章:Silverlight布局系統(tǒng)正確優(yōu)化方法
分享路徑:http://www.5511xx.com/article/cosdhpp.html