遲到的 WPF 學習 布局

2022-03-14 02:22:55 字數 1067 閱讀 3518

布局是 wpf 很重頭的一部分內容,這一部分梳理和記錄關於布局章節的知識點。

1. wpf 使用一種基於流(flow-based)的概念來處理布局邏輯,將傳統的基於「座標」的思想盡力的捨棄掉,而是用相對和智慧型的方式,它使得開發人員可以建立與顯示解析度和視窗大小無關的、在不同顯示裝置上可以進行縮放調整的使用者介面——這聽起來很夢幻哈

2. wpf 視窗智慧型包含乙個元素,wpf 推薦的方式是窗體上放乙個容器,容器裡放若干元素或容器。這一點通過建立預設的 wpf 程式可以看出,xaml **在 window 標籤內預設生成乙個 grid 元素,想在新增乙個同級的元素,window 標籤處將會出現波折號報錯「屬性content只能設定一次」

3. wpf 所有的容器類都是派生自 system.windows.controls.panel,一些核心容器包括:

stackpanel(在乙個水平或垂直堆疊中放置元素)

dockpanel(根據容器整個邊界調整元素)

grid(根據乙個不可見**在行列中調整元素)

uniformgrid(相比 gird,它要求所有單元格具有相同尺寸)

canvas(使用固定座標定位元素,接近傳統 windows,但不提供錨點和停靠,因此不適合但可用於可調整大小的窗體)

4. 裝飾元素是一種特殊的元素,通常用於在乙個物件周圍新增某種裝飾效果,所有的裝飾元素繼承於 system.windows.controls.decorator

5. userlayoutrounding=true 屬性將確保 wpf 將所有布局容器的內容對齊到最近的畫素邊界,從而保證不會出現因反鋸齒而導致的顯示內容模糊。例如,乙個共寬 200 畫素的 grid 被分為兩列,每列 100 畫素寬,但顯示裝置寬度為 175 畫素,這將導致每列實際寬度 87.5 畫素,如果不應用該屬性,將看到乙個模糊的邊界為了適應 0.5 的畫素對齊而出現。

6. 儘管 grid 布局控制項十分靈活,grid 中的元素也可以跨行跨列的顯示,但顯然這種靈活性伴隨著不確定性和邏輯的複雜,一種推薦的經驗是:對於一次性布局,如一組功能按鈕,使用 stackpanel 更合適,為視窗多個布局使用一種一致性的結構,grid 當然更方便。

WPF學習二 布局

合肥程式設計師群 49313181。合肥實名程式設計師群 128131462 不願透露姓名和資訊者勿加入 q q 408365330 e mail egojit qq.com 所有介面程式開發都是從布局開始,好的布局讓人善心悅目。對於windows 開發人員設計使用者介面的方法,wpf有重大的改進。...

WPF學習筆記02 布局

wpf視窗只能包含單個元素。如果要放置多個元素,需要放置乙個容器,然後在容器中新增元素。前兩個是為了使得wpf程式更加靈活,在不同的裝置上能靈活適應,能處理動態內容。總的目標都是為了建立更好更靈活的使用者介面。簡單地在單行或單列中以堆疊方式放置其子元素。預設按照自上而下地順序排列元素。通過設定ori...

WPF之路 WPF布局系統

0,什麼是布局 這是乙個很簡單的問題。簡單來說,就是把一些控制項有條理的擺放在介面上合適的位置,顯然擺的亂七八糟不能算布局。在wpf中,這個條理與winform中略有不同,讓我們看個很簡單的介面 這樣子的介面大家在熟悉不過了。依圖所示,wpf先用藍線 假設的線 將介面劃分為上下兩部分,然後再有紅線劃...