WPF高階技巧和實戰02 布局

2022-09-14 12:57:06 字數 1527 閱讀 1145

窗體無邊框(最大化及標題位置)windowstyle="none"

窗體透明 allowstransparency="true",必須設定窗體無邊框,否則報錯

sizetocontent屬性,窗體大小可以根據內容自動調整,多語言版本時一般會使用

我習慣性的設定window窗體的樣式如下:

這裡有個知識點需要強調一下:

border的屬性background="" 和background="transparent" 的區別,前者設定之後,會導致無法獲取到border的一些事件,所以一般都會使用後者,特殊場景除外。

關鍵屬性clip:根據集合圖形進行視窗剪下

也可使用pathgeometry實現各種自定義形狀的異形窗體建立

不使用顯示的方式設定元素的尺寸(常見的就是在多語言版本軟體切換時)

不使用座標定位置

布局容器的子元素共享可用空間

可巢狀容器

布局過程包括兩個階段:測量(measure)階段和排列(arrange)階段。測量階段,容器遍歷所有子元素,並詢問子元素他們期望的尺寸。排列階段,容器在合適的位置放置子元素。

所有布局容器都繼承自panel抽象類。3個公有屬性

名稱說明

backgroud

面板背景著色的畫刷。如果想接收滑鼠事件,就必須將該屬性設定為非空值(如果既想接收滑鼠事件,又不希望顯示固定顏色的背景,那就設定透明即可)

children

該屬性是在面板中儲存的條目集合(每個條目可以包含更多的子條目)

isitemhost

如果面板用於顯示與itemscontrol控制項關聯的項,該屬性值就是true。在大多數情況下,設定不需要知道列表控制項使用後台面板來管理它所包含的條目的布局。但是如果希望建立自定義列表,以不同方式放置子元素(按照平鋪方式顯示影象的listbox控制項),這個屬性就很重要了。

如果需要建立自己的布局容器,就需要使用這幾個公有屬性,還需要重寫繼承自frameworkelement類的兩個方法:

protected override size measureoverride(size constraint)

protected override size arrangeoverride(size arrangesize)

來修改當前子元素面板處理測量階段和排列階段的方式。

繼承自contextcontrol(內部職能放置乙個物件),所以使用布局控制項包裹整個展示內容。lineup()-linedown()

pageup()-pagedown()

scrolltoend()-scrolltohome()-scrolltoverticaloffset()

scrolltoleftend()-scrolltorightend()-scrolltohorizontaloffset()

WPF學習筆記02 布局

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

css高階 02 CSS布局

1 display確定元素的顯示型別 2 positon確定元素的位置 relative absolute fixed這三個屬性,可以結合 z index 來設定層級。1 table 布局 早期使用的布局,如今用得很少。3 inline block 布局 對外的表現是行內元素 不會獨佔一行 對內的表...

高階css 常見布局技巧

1.margin負值的應用 1 讓每個盒子margin往左側移動 1px 正好壓住相鄰盒子邊框 2 滑鼠經過某個盒子的時候,提高當前盒子的層級即可 如果沒有有定位,則加相對定位 保留位置 如果有定位,則加z index 2.文字圍繞浮動元素 我是乙個保安,上班為了下班.我是乙個保安,上班為了下班.3...