?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

輝煌137com娛樂開戶:WPF 用自定義Panel更好地處理Resize時的行為

?

WPF自帶的Pane很多,然則功能都過于基礎。對付一些常見功能的支持都不是很方便。下面的一些環境應該有不少人都碰到過。

1.Panel里的Item之間有一個Margin。然則要對著末一個或第一個Item分外處置懲罰:它不必要這個Margin。

2.窗口在Resize的歷程中輝煌137com娛樂開戶,Item之間會呈現彼此遮擋或是呈現某個Item只是部分可見。這時我們更盼望這個Item干脆暗藏起來好了。

3.很難在運行時調劑Item的順序。(留意這評論爭論的是Panel不是ItemsControl,這個問題對付后者很輕易,直接節制后臺綁定的數據就可以了)

4.讓Panel內Item的大年夜小根據Panel的大年夜小自動調節。

上面這些問題,在實現項目中時常會碰到,然則WPF沒有供給一個專門的Panel來完美地處置懲罰所有這些問題。下面先詳細先容一下這幾個問題。

第1個問題太常見了,就不多說清楚明了。

第2個問題,一個Item,假如地方不敷完全顯示出來,那就不要顯示了嘛。顯示出來個半成品多丟臉,還不如不顯示。原先想做一個AutoHideBehavior,結果發明不是那么輕易,由于一個控件是否顯示是由其父控件節制的,而Arrange的歷程又沒有定義什么Event可以節制。最好的要領照樣用一個Custom Panel來實現。WPF已經自帶一個類似這樣的Panel叫ToolbarPanel。這個Panel真是自掃門前雪啊,實現了Toolbar上所必要的功能就竣工,想在其余地方用,行徑還配不上,只能自己做一個。

對付問題4,TabControl的Header便是一個例子,WPF專門做一個TabPanel來節制Tab Header的結構,當Tab的Header有兩排時,這些Header會自動填滿Header的寬。很納悶MS就不能做一個叫AutoFillWrapPanel之類的通用一些的Panel,或是給WrapPanel供給一個AutoFill屬性嗎?這個功能也可以經由過程為每個Child都定義好MaxWidth和Min輝煌137com娛樂開戶Width屬性,然則這屬于一種hard code,一種magic number。

有不滿才有進步嘛。MS如果什么功能都做了,那些控件開拓商不是都要倒了?

這里就基于StackPanel的基礎行徑,加入一些擴展功能。包括:

1.ItemMargin:節制Panel里Item之間的間距

2.Orientation:節制Panel里Item的放置偏向。StackPanel的功能。

3.ItemExtraWidth:當Panel足夠寬時,給里面每個Item多分配的最大年夜寬度。

4.ItemExtraHeight:當Panel足夠高時,給里面每個Item多分配的最大年夜高度。

5.LastVisualChildFil輝煌137com娛樂開戶l:顯示中,著末一個Item是否添補Panel的殘剩空間。

6.IsParticalItemHidden:當Panel的殘剩空間不夠以完備地顯示當前Item時,就不顯示。

7.ArrangeMan輝煌137com娛樂開戶ager.ArrangeIndex:節制Panel的Children的襯著順序。默認便是定義順序。

8.Resizers:節制Panel在Resize時的行徑。

這些屬性照樣對照抽象的,我們來詳細看一下這個Panel在被Resize時的行徑。

圖1. Resize時的行徑(最大年夜)

圖2. Resize時的行徑。(縮小ItemMargin)

圖3. Resize時的行徑。(縮小Item的附加寬度)

圖4. Resize時的行徑。(暗藏不完全可見工具)

而這個自定義Panel的默認行徑與StackPanel是一樣的。在上面的示例中,是先縮小了Item之間的距離再縮小Item本身。可能有的人不想要這樣的行徑。這個擴展的StackPanel也供給了一個Resizers屬性來節制這個行徑。代碼如下:

r:ResizerCollection>

r:ExtraLengthResizer IsEnabled="True"/>

r:ItemMarginResizer IsEnabled=輝煌137com娛樂開戶"True"/>

r:ResizerCollection>

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

河北十一选五开奖的 qq游戏有沈阳麻将 0405年火箭季后赛火箭vs小牛视频 有坂深雪的身材 极速时时彩 广东好彩1开奖结果 上海时时乐计划 310捷报比分 天津时时彩 掘金vs国王 重庆时彩全天计划 友田彩也香穿紫色长袜哪一部 宁夏11选5前三直 友田彩也香 AV在线观看 s江苏十一选五任三 捷报比分各版本 河北十一选五登录