天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

深入解讀Silverlight的布局原理

  對于Silverlight學習來說,首先要面對的應該是布局:你得把元素放到你想擺放的位置,然后是考慮元素的層次以及可見性,之后可能你想讓它動起來,就學習動畫,最后理解更深入之后,可能會開發如Behavior之類的行為,或者設置復雜的控件狀態,模板。

  很多教程是從使用Grid開始,然后是Canvas,StackPanel之類的控件,他教你怎樣設置元素的位置。然后就沒有下文,很少會去講解布局的原理,不過如果是看Silverlight SDK,是能看到的。其實最好的教程就是Silverlight SDK,包括像兩個不同的SL插件(即使它們在不同的瀏覽器窗口)之間的通信這些一般人沒有注意到的特性,里面都是講得清清楚楚。所以,建議不要花錢去買Silverlight相關的書。

  其實,不是能使用Grid之類的就知道了布局,Silverlight布局包含更多的東西,理解布局系統有利于更深層的理解Silverlight,從而開發更得心應手。

  遺憾的事初學者理解布局也許有點復雜,可能是因為其中的遞歸,但是我們生活中其實有很多遞歸系統的。我試著學習郭欣用鐵路系統描述網絡傳輸一樣,也來構造這樣一個場景。

  布局原理

  首先,所有元素的最頂層必須是一個容器(通常如Grid,Canvas,StackPanel等),然后在容器中擺放元素,容器中也可能包含容器。這里的容器就像行政長官一樣,他們負責分配元素的空間。同樣,首先頂層的容器一個一個的問自己的子元素:你想要多大的空間?如果子元素也是容器,它又繼續向下遞歸,最后又頂層開始向上匯報。這就是所謂的測量。

  測量完之后就是排列,這個時候每個容器知道自己每個子元素想要的空間大小,就按自己的實際情況進行分配。一致遞歸到最底層。

  注意上述紅色字體部分,通過前面的故事,我們知道,資金的發放完全由行政長官控制,不管下面想要多少,都是他說了算,他甚至可以一分錢都不給,或者給你超多你的預期的數目。

  這里的容器也一樣,容器擁有完全的分配權,不過這里容器不僅僅是分配空間,還決定元素的位置,因為空間總是跟位置相關的。也就是說,容器說想給你多大空間你就只有有那么大的空間可使用,容器想讓你擺在什么位置,你就得乖乖呆著什么位置。

  只不過,這里的容器是遵守規則的,它遵守開發者指定的規則:

  Grid的規則是:我把我這個空間分成一格一格的格子,看起來有些像Table,在我里面的元素我完全按照附加屬性Grid.Row,Grid.Column,Grid.RowSpan,Grid.ColumnSpan來決定其大小和位置。

  Canvas的規則是:我讀取附加屬性Canvas.Left,Canvas.Right,Canvas.Top,Canvas.Bottom,并以此來決定元素的位置,我通常不限制元素開用空間

  StackPanel的規則是:根據附加屬性,我要么讓元素橫著排列,要么豎著排列。

  聰明的你是不是立刻想到,我可不可以定義自己的規則呢?哈哈,當然可以!

  比如,你可以讓Panel里面的元素隨機分布,并可讓它們隨機旋轉一定角度,這不就是現在某些很酷的相冊嗎;你可以讓元素排成一個圓形,這不就是Blend里面的例子嗎;你可以讓元素根據某個Path元素排列,這不就是PathListBox嗎?如下圖:

Silverlight中的布局

Silverlight中的布局

  所以,你現在是不是覺得布局不是那么簡單并且很好玩呢?

  下面我們就來看怎么實現這么酷的東西!

  基礎框架-FrameworkElement

  為Silverlight布局中涉及的對象提供公共API的框架。FrameworkElement還定義在Silverlight中與數據綁定,對象樹和對象生存期功能區域相關的API。

  繼承層次結構:

 System.Object
System.Windows.DependencyObject
System.Windows.UIElement
System.Windows.FrameworkElement
System.Windows.Controls.Border
System.Windows.Controls.Control
System.Windows.Controls.Panel
System.Windows.Shapes.Shape

NET技術深入解讀Silverlight的布局原理,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲国产综合人成综合网站00 | 91原创在线| avtt一区 | 熟女久久久久久久久久久 | 国产色无码精品视频国产 | 国产成人免费片在线观看 | 甜性涩爱在线看 | 99视频导航 | 日本人的xxxxxxxxx69 | 最好看中文字幕国语 | 精品一区二区免费视频蜜桃网 | 国产偷国产偷亚州清高APP | 啊叫大点声欠CAO的SAO贷 | 美女议员被泄裸照 | 国产精品伦一区二区三级视频 | 无码日韩人妻精品久久蜜桃入口 | 岳的奶大又白又胖 | 日本不卡免免费观看 | 人妻 中文无码 中出 | x8国产精品视频 | 香蕉eeww99国产精品 | H揉捏娇喘乳叫床NP调教视频 | 欧美午夜a级精美理论片 | 国产午夜在线精品三级a午夜电影 | 欧美日韩在线亚洲一 | 51久久夜色精品国产 | 国产精品人妻一区免费看8C0M | 超碰99热在线精品视频 | 午夜在线观看免费观看 视频 | 国产成人高清亚洲一区app | 儿子操妈妈视频 | 琪琪婷婷五月色综合久久 | 无人影院在线播放视频 | 99国产精品免费视频 | 欧美乱码卡一卡二卡四卡免费 | 伊人香蕉在线播放视频免费 | 99精品亚洲| 成人在线观看视频免费 | 久久亚洲精品AV成人无码 | 超碰视频97av | 久久久久国产精品美女毛片 |