WPF 自定義視窗

2021-10-10 21:00:37 字數 1801 閱讀 4925

window類繼承自contentcontrol類。

可以通過設定windowstyle=「none」,完全移除視窗框架,從而建立乙個可完全定製的視窗,但是有各種各樣的不方便,所以本文使用windowchrome.windowchrome來自定義視窗

自定義視窗

參考遇到的一些難纏問題

屬性作用

值allowstransparency

視窗是否透明

true 允許其他視窗透過該視窗顯示

false 視窗背後的內容永遠不能顯示,並且透明的背景被呈現為黑色背景

當與windowstyle="none"屬性結合使用,可建立形狀不規則的視窗

icon

視窗圖示

top&left

設定螢幕視窗左上角到

螢幕頂部與左側的距離

當windowstartupposition屬性設定為manual,可在視窗顯示之前設計視窗位置

resizemode

使用者是否可以改變視窗尺寸

noresize 完全鎖定視窗尺寸

canminimize 只允許最小化視窗

canresize允許任意改變視窗尺寸

canresizewithgrip 在視窗右下角新增圖形細節,表示可以改變視窗尺寸

restroebounds

獲取視窗邊界

showintaskbar

在工作列alt+tab中顯示

true

false

sizetocontent

建立自動放大縮小尺寸的視窗

manual 禁止視窗自動改變尺寸

height、whidth、width and height 允許視窗在不同方向進行擴充套件以適應動態內容。

當使用sizecontent屬性時視窗尺寸可以放大到超出螢幕邊界

title

視窗標題欄

topmost

在最上層顯示

true 在應用程式的所有所有其他視窗的上面顯示(除非其他視窗的topmost也為true)

windowstartuplocation

視窗初始位置設定manual 使用left&top設定視窗位置

centerscreen 在螢幕中心顯示視窗

centerowner 在父視窗中心顯示

windowstate

控制當前視窗是否最大化,最小化或處於正常狀態

normal 正常

maximized 最大化

windowstyle

決定視窗邊框

singleborderwindow 預設值none 在沒有標題欄的區域周圍有一條凸起的細邊框

方法效果

解釋show()

顯示非模態視窗

showdialog()

顯示模態視窗

阻止使用者訪問父視窗

wpf程式設計寶典

的一篇比較簡單基礎的一篇

my:commonwindow

x:class

="maxwell_vs2017demo.mainwindow"

xmlns

=""xmlns:x

="">

>

grid

>

my:commonwindow

>

最後發現是按鈕中的path資源沒有獲取到,本來用的是staticresource獲取資源改為dynamicresource後正常,所以要注意staticresource與dynamicresource的區別

WPF 自定義的視窗拖動

wpf原有的視窗樣式太醜,當我們重新定義視窗時,則需要新增一些額外的功能,如拖動 1 在介面上對布局元素如grid,新增委託事件 mouseleftbuttondown uielement onmouseleftbuttondown 2 委託方法中處理一下就行了 private void uiele...

WPF 自定義面板

先上效果圖吧 實現自定義面板主要實現兩個方法 一 measureoverride 用於計算容器內部元素大小,這個很簡單,略過 二 arrangeoverride 用於計算容器內部元素位置和其他顯示方式,以下是實現上面布局的 protected override system.windows.size...

WPF 自定義屬性

做了乙個自定義控制項和乙個自定義grid,裡面的元素可以隨著繫結屬性變化 效果圖 一定滑塊 關鍵 1 自定義屬性 public class mygrid grid set private static object coercecolumncount dependencyobject element...