国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

WPF面板自定義方法介紹

開(kāi)發(fā) 開(kāi)發(fā)工具
WCF面板是一個(gè)非常好用的東西,其中的各種子空間需要我們對(duì)其熟練的掌握,以方便我們靈活的使用WPF,提高開(kāi)發(fā)效率。

WPF作為一種方便使用的圖形界面顯示工具,幫助開(kāi)發(fā)人員完成了許多工能。在WPF中,有很多種面板,比如Grid, StackPanel等,這讓我們的界面布局更加的靈活,但也許這些WCF面板并不能完全滿足你的需求,這時(shí)你需要自定義面板來(lái)滿足你的布局要求. #t#

1,WCF面板布局是如何實(shí)現(xiàn)的

WPF 布局引擎采用了一種遞歸的方式來(lái)實(shí)現(xiàn)控件及其子控件的布局,大致過(guò)程是這樣的:要實(shí)現(xiàn)控件A的布局,那么先要實(shí)現(xiàn)A的子控件a1,a2,a3...的布局,要實(shí)現(xiàn)a1的布局,那么得實(shí)現(xiàn)a1的子控件a11,a12,a13...的布局,如此循環(huán),然后但子控件的布局完成后,在完成父控件的布局,最后遞歸回去,遞歸結(jié)束,布局才算完成.

控件的最終大小和位置是由該控件和父控件相磋商來(lái)完成的,父控件先給出其能給予子控件的力所能及的布局空間,子控件在反饋給父控件一個(gè)自己的期望值,父控件最后根據(jù)自己所擁有的空間大小與子控件的期望值分配一定的空間給子控件并返回自己的大小.這一系列過(guò)程是通過(guò)重寫(xiě)面板的MeasureOverride和ArrangeOverride方法來(lái)完成的.

2,Size MeasureOverride(Size availableSize)方法

該方法為WCF面板布局中控件所需要的空間大小進(jìn)行評(píng)估. 參考如下代碼:

  1. protected override   
  2. Size MeasureOverride(Size 
    availableSize) {   
  3. Size childrenSize =
     
    new Size(0, 0);   
  4. foreach (UIElement child in 
    this.Children) { child.Measure
    (new Size(Double.PositiveInfinity
    ,Double.PositiveInfinity)); 
    childrenSize.
    Width += child.DesiredSize.Width; 
    childrenSize.Height += child.
    DesiredSize.Height;   
  5. }  
  6.  return childrenSize;   

在MeasureOverride階段我們對(duì)WCF面板中的每個(gè)Child調(diào)用了其Measure(Size sz)方法,該方法的作用是父控件告訴子控件其預(yù)計(jì)要分配給子控件的空間大小,對(duì)Child調(diào)用了該Measure方法后,子控件會(huì)在其內(nèi)部給父控件一個(gè)回應(yīng)以便告訴父控件它所期望的大小,而子控件的該期望值便保存在其child.DesiredSize中.如果Measure方法中傳入的是正無(wú)窮大 (new Size(Double.PositiveInfinity,Double.PositiveInfinity))時(shí),相當(dāng)于父控件在對(duì)子控件說(shuō)"盡管說(shuō)出你所需要的大小吧,如果可以的話全世界都可以給你".

MeasureOverrice方法中的availableSize參數(shù)正是其父控件(你編寫(xiě)的面板控件以后在實(shí)際使用時(shí)其父控件)對(duì)其調(diào)用Measure方法時(shí)傳入的值(減去一些邊界值,比如要減掉Margin等)

MeasureOverride方法的返回值正是其告訴其父控件的期望值,即是其父控件(你編寫(xiě)的面板控件以后在實(shí)際使用時(shí)其父控件)對(duì)其調(diào)用Measure方法后,其DesiredSize值

注意:作為父控件,你可以很慈愛(ài)地僅可能地滿足子控件的需要(盡管不一定有這能力),所以可以在對(duì)子控件調(diào)用Measure方法時(shí)傳入一個(gè)正無(wú)窮大的尺寸, 但作為子控件,你不能貪婪地向父控件索要正無(wú)窮大的空間,所以我們不能將正無(wú)窮大作為MeasureOverride方法的返回值,也不能直接將該方法的 availableSize參數(shù)作為返回值(因?yàn)槟愕母缚丶锌赡軐⒄裏o(wú)窮大作為該參數(shù)傳遞給你)

3,Size ArrangeOverride(Size finalSize)方法

該方法作用在于為WCF面板子控件提供布局空間即排列子控件并返回自身大小,參考下面的代碼:

  1. protected override   
  2. Size ArrangeOverride(Size 
    finalSize) {   
  3. Point childPos = new Point(0, 0);   
  4. foreach (UIElement child in 
    this.Children) 
    { child.Arrange(new Rect
    (childPos, new 
    Size(child.DesiredSize.Width, 
    finalSize.
    Height))); childPos.X += child.
    RenderSize.Width;   
  5. }   
  6. return finalSize;   


該方法對(duì)每個(gè)Child調(diào)用Arrange方法,Arrange方法中傳入的Rect結(jié)構(gòu)告訴子控件其被安排在那個(gè)空間內(nèi)進(jìn)行布局,然后子元素會(huì)根據(jù)自己得到的空間以及自己的對(duì)齊屬性(XXXAlignment)進(jìn)行放置,放置完成后子控件的大小等便得到了確定,而該值便存放在子控件的 RenderSize中(即是ActualWidth與ActualHeight).

控件本身也可以根據(jù)子控件占用的實(shí)際空間大小來(lái)決定自己的大小,也可以直接將得到的空間大小(即是ArrangeOverride方法中的finalSize參數(shù))作為自己的最終大小返回

ArrangeOverride方法中的finalSize參數(shù)是該控件的父控件(你編寫(xiě)的面板控件以后在實(shí)際使用時(shí)其父控件)在對(duì)該控件調(diào)用Arrange方法時(shí)傳入的Rect的大小,正如該控件對(duì)其子控件調(diào)用Arrange方法一樣.

注意:Child的Arrange方法只是給定一個(gè)空間讓W(xué)CF面板子控件在此空間內(nèi)進(jìn)行擺放,該空間并沒(méi)有決定子控件的具體位置和大小,這還得取決于子控件的其它屬性,比如HorizontalAlignment與VerticalAlignment等. 在Arrange期間,系統(tǒng)會(huì)自動(dòng)進(jìn)行對(duì)齊(Alignment)操作.

責(zé)任編輯:曹凱 來(lái)源: IT168
相關(guān)推薦

2009-12-24 15:22:10

WPF繼承自定義窗口

2010-01-15 15:26:46

VB.NET自定義類型

2012-07-24 15:03:19

OpenStack架構(gòu)

2009-08-04 08:58:01

C#自定義特性

2009-08-28 17:45:19

C#自定義數(shù)據(jù)

2017-02-17 09:37:12

Android自定義控件方法總結(jié)

2009-08-04 12:56:51

C#自定義事件

2009-07-28 10:21:05

自定義Command

2015-02-12 15:33:43

微信SDK

2009-12-23 18:06:25

WPF模板

2009-12-24 14:18:57

WPF類型轉(zhuǎn)換

2009-12-25 10:05:06

WPF資源

2023-06-27 15:02:47

2010-03-18 16:19:02

Java自定義線程池

2015-02-12 15:38:26

微信SDK

2009-12-28 11:14:29

WPF顯示文本

2016-11-16 21:55:55

源碼分析自定義view androi

2016-12-26 15:25:59

Android自定義View

2011-06-23 10:49:13

Qt 自定義信號(hào)

2024-08-26 11:13:26

字典entry自定義
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文字幕av久久| 人妖欧美一区二区| 手机在线免费看av| 欧美色图天堂| 美女久久精品| 亚洲精品色图| 99这里只有久久精品视频| 中文字幕亚洲综合久久菠萝蜜| 亚洲色图偷窥自拍| 国产日韩欧美视频在线| 国产美女在线免费观看| 黄频免费在线观看| 麻豆国产91在线播放| 精品国产精品自拍| 欧美俄罗斯性视频| 亚洲国产精品www| a√中文在线观看| 亚洲一区国产| 91.成人天堂一区| 国产福利不卡| 中文字幕毛片| 神马影视一区二区| 色综合久久综合| 99re6这里有精品热视频| 桃色av一区二区| 国产精品国产馆在线真实露脸| 欧美日韩一区在线播放| 这里只有精品电影| 久久天天躁日日躁| 午夜一区二区三区在线观看| 日韩av懂色| 欧美精品尤物在线| 91成人在线观看国产| 国产mv免费观看入口亚洲| 亚洲精品日韩一| 88国产精品视频一区二区三区| 成人性生活视频| 国产69精品久久久久按摩| 激情婷婷综合| 免费在线观看一区二区三区| 国产精品超碰97尤物18| 欧美精品一区二| 91精品国产91久久久| 精品成人一区二区三区| 国产极品模特精品一二| 国产女人aaa级久久久级 | 超碰97在线人人| 一本色道久久88亚洲精品综合| 四虎4hutv紧急入口| 国产精品一区二区三区视频网站| 在线观看国产视频| 欧美日韩怡红院| 一区二区三区精品视频| 亚洲欧洲色图| 日本久久精品视频| 99精品久久免费看蜜臀剧情介绍| 成人自拍av| 久久精品国产sm调教网站演员| 精品欧美激情精品一区| 日本视频免费一区| 伊人精品综合| 成人在线观看亚洲| 丝袜老师办公室里做好紧好爽| 欧美黑人xxx| 亚洲老妇xxxxxx| 美女诱惑黄网站一区| 97久久综合精品久久久综合| 麻豆免费在线视频| 婷婷免费在线观看| 不卡视频一区二区| 日韩视频一区二区三区| 国产精品久久久久久久久动漫| 亚洲伦伦在线| 欧美xxav| 精品国产91久久久久久浪潮蜜月| 麻豆网站在线免费观看| 欧美黄色免费网址| 久草精品电影| 亚洲在线视频福利| 91国产高清在线| 亚洲精品国产电影| 日韩一区二区三区免费观看| 中文av一区二区| 97精品电影院| 日本成人超碰在线观看| 国产亚洲成人一区| 欧美日韩ab| crdy在线观看欧美| 成人视屏在线观看| 蜜桃精品在线| 蜜臂av日日欢夜夜爽一区| 亚洲国产成人porn| 国产精品成人一区二区三区吃奶| 免费在线观看污污视频| 18岁网站在线观看| 99riav视频在线观看| 亚洲国产日本| 在线观看日韩高清av| 成人福利在线视频| 免费福利在线观看| 欧美成人一区二免费视频软件| 亚洲一区在线观看免费| 91精品国产高清| 交视频在线观看国产| 欧美性生活一级片| 亚洲国产综合在线| 91欧美激情另类亚洲| av在线资源站| 日日摸夜夜添夜夜添国产精品| 日韩免费视频一区| 一级一片免费播放| 亚洲一区导航| 樱花草国产18久久久久| 超碰97在线资源| 国产伦理精品| 欧美国产激情二区三区| 成人久久久久久| 永久免费网站在线| 不卡欧美aaaaa| **欧美日韩vr在线| 青青草视频在线观看| 久久亚洲图片| 久久精品欧美视频| 日本高清网站| 麻豆91精品| 海角国产乱辈乱精品视频| 黄色av网站在线免费观看| 国产精品一二二区| 国产精品久久婷婷六月丁香| 亚洲小说区图片| 国产欧美日韩精品一区| 97伦理在线四区| 欧美不卡高清一区二区三区| 亚洲免费视频成人| 亚洲黄色一区二区三区| 亚洲区小说区图片区qvod按摩| 91麻豆精品国产91久久久久久| 日本成人在线免费视频| 一二三区精品| 国产+人+亚洲| 中文一区一区三区高中清不卡免费| 中文字幕制服丝袜一区二区三区 | 最近国产精品视频| 日韩精品一区二区三区在线观看| 日韩精品你懂的| 久久99精品久久久| 91原创国产| 红杏aⅴ成人免费视频| 亚洲精品一区中文| 北岛玲一区二区三区| 国产精品乱人伦| 亚洲理论电影在线观看| 亚洲欧美bt| 亚洲一区二区免费| **爰片久久毛片| 国产一区二区三区18| 麻豆视频在线播放| 欧美日韩你懂得| 精品av中文字幕在线毛片| 一区二区三区日本| 久久久精品麻豆| 91麻豆精品一区二区三区| 日本一区二区免费高清视频| 亚洲国内自拍| 99re视频在线| 欧美在线资源| 国产欧美日韩综合精品| 欧美人妖在线| 欧美精品一区三区| 国产精品第一国产精品| 日韩国产精品一区| 国产后进白嫩翘臀在线观看视频| 色综合久久久久综合体| 中文在线最新版天堂8| 一区二区国产视频| 永久免费在线观看| 亚洲成国产人片在线观看| 黄页网址大全在线观看| 亚洲国产精品人人做人人爽| 日本激情免费| 精品免费在线视频| 国产精品一区二区婷婷| 欧美一区二区三区精品| 免费成人在线电影| 丝袜一区二区三区| gogo人体一区| 成人网址在线观看| 一区二区黄色| 国产91porn| 国产色一区二区| 樱花在线免费观看| 69精品人人人人| 国产理论在线| 欧美最猛黑人xxxx黑人猛叫黄| 91欧美日韩| 免费成人看片网址| 国产成人精品亚洲午夜麻豆| 四虎黄色影院| 日韩免费视频线观看| 日韩精品一级|