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...