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

yth206游艇會:WPF使用自定義Panel更好地控制Resize時的行為——之二

?

斟酌下面這樣的界面結構。

對付這個小窗口而言,器械少。可以把窗口定逝世在500*300這樣。然則假如這個表單是屬于一個大年夜窗體的一個部分。環境就對照繁雜了。

我們并不能把窗口定逝世大年夜小。由于窗口有可能會必要在1920*1200到102yth206游艇會4*768等不合的分辨率下運行。這樣這個表單在不合環境下的大年夜小就有可能有很大年夜的區別。

一個對照好的規劃是,當窗口變小,第一行放不下所有控件時。換到第二行。當窗口變大年夜,第一行有多余地方時,把第二行的內容放在第一行上,使界面的右邊不留空缺。

有人會大年夜叫這不便是WrapPanel做的工作嗎?沒有錯,然則WrapPanel的每一行都是左對齊的,右邊會有大年夜片的留白,這在想要設計有優越用戶體驗的軟件中,是弗成吸收的。

也便是說WPF自帶的WrapPanel沒有處置懲罰好下面這種環境。

第一行有多余的空間,然則又不夠以把第二行的什么控件放上來。

這時,第一行的現有的控件應該充分使用第一行的所有可用空間,把第一行填滿。這個是用WrapPanel做不到的。WrapPanel主要用于內部的Item的大年夜小基礎一樣的環境。假如大年夜小不一yth206游艇會,WrapPanel就會造成不好的用戶體驗。還不如用Grid做等比例縮放好。

很可惜,現在我們又要自己寫一個WrapPanel了。如下圖所示。

圖1. FillWrapPanel Demo

在這個Panel里的所有的Button都有 20的MinWidthyth206游艇會和55的MaxWidth。并特意為3號Button設置了30的MaxWidthyth206游艇會,為6號Button設置了100的MaxWidth。我們來看一下這個Panel在Resize時的行徑。

圖2. 再小就要換行了(原則是讓所有控件都盡可能大年夜,然則右邊又不能留白)

圖3. 縮到6號Button

圖4. 縮到4號Button

圖5. 最小

假如用WPF的WrapPanel呢?結果很簡單。

圖6. WPF的WrapPanel(Item的大年夜小是確定的,不會變更,而且右邊會留白)

系統的WrapPanel很適于實現Explorer里瀏覽文件、文件夾或是看圖軟件的縮略圖模式。而本文中先容的FillWrapPanel更適于實現類似表單的窗體。由于里面的器械大年夜小很yth206游艇會可能是各不相同的。

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

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

浙江体彩20选5开奖号 重庆真人麻将微信群 深圳风采最新开奖结果查询 天天策略配资 广西快乐双彩开奖结果彩控网 sg飞艇是哪个国家的 六场半全场500 基金配资申请 JJ斗地主大众麻将创建房间 河南十一选五开奖分布图 黑龙江22选5开奖结果查询 亿潮智投 2022世界杯预选 幸运28走势图 河北11元选5走势 双色球开奖走势图2 快乐十分*规则奖金