1. 程式人生 > >WPF實現夜間模式

WPF實現夜間模式

原文: WPF實現夜間模式

背景

專案中設計了一個黑色主題,稍加改正也可作為夜間模式,效果圖如下:

NightMode

原理

由於專案中存在地圖,而地圖完全是由點陣圖組成,不能直接改變背景色,所以我在內容上面放置了一個黑色的Border作為遮罩。可通過更改Border的Opacity來更改黑色的程度,從伸手不見五指到隱約可見輪廓都可以。

需要注意的是,必須將Border的IsHitTestVisible設為False(即不參與命中測試), 否則內容不能點選,影響程式正常執行。

示例程式碼如下:

<DockPanel>
    <Slider DockPanel.Dock="Top"
            
LargeChange="0.2" Maximum="1" Minimum="0" Orientation="Horizontal" TickFrequency="0.1" Value="{Binding ElementName=BdrShade, Path=Opacity}" /> <Grid> <Image Source="Bliss.jpg" /> <
Border Name="BdrShade" Background="Black" IsHitTestVisible="False" Opacity="0.5" /> </Grid> </DockPanel>

程式碼下載

部落格園:NightModeDemo