WPF(Windows Presentation Foundation)是微軟推出的一種基于XAML的應(yīng)用程序開(kāi)發(fā)框架,該框架可以用于創(chuàng)建豐富的GUI界面和交互式應(yīng)用程序,而且還具有可以自定義外觀的優(yōu)點(diǎn)。
CSS(Cascading Style Sheets)是一種用于描述文檔展示樣式的語(yǔ)言。和WPF一樣,它也能夠通過(guò)樣式來(lái)設(shè)置應(yīng)用程序的視覺(jué)效果,而且更具有靈活性。如果我們能夠讓W(xué)PF應(yīng)用程序也能支持CSS,那么就可以適應(yīng)更多的開(kāi)發(fā)需求了。
WPF自帶有一種名為Style的樣式機(jī)制,可用于像CSS一樣描述元素的視覺(jué)效果。不過(guò),Style的寫(xiě)法比CSS復(fù)雜,它需要按照XAML的格式來(lái)編寫(xiě)。這對(duì)于熟悉CSS的開(kāi)發(fā)者來(lái)說(shuō),可能不太友好。
好在WPF提供了一個(gè)叫做wpfcss
的庫(kù),可以讓我們使用CSS來(lái)定義WPF應(yīng)用程序的樣式。該庫(kù)支持CSS 2.1規(guī)范,并且還提供了一些擴(kuò)展屬性,如BoxShadow。
使用wpfcss庫(kù),我們可以將CSS代碼嵌入到XAML文件中,如下所示:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wpfcss="clr-namespace:WpfCSS;assembly=WpfCSS"> <Window.Resources> <wpfcss:StyleSheet> <wpfcss:Style Selector=".myButton"> <wpfcss:Setter Property="Background" Value="Red" /> <wpfcss:Setter Property="FontSize" Value="24" /> </wpfcss:Style> </wpfcss:StyleSheet> </Window.Resources> <Grid> <Button Style="{wpfcss:StyleRef '.myButton'}" Content="My Button" /> </Grid> </Window>
通過(guò)wpfcss:StyleSheet
元素,我們可以定義一系列的樣式。而通過(guò)wpfcss:StyleRef
屬性,我們可以把樣式應(yīng)用到WPF元素上。這種寫(xiě)法與CSS的寫(xiě)法幾乎一致,只是多了一些必需的命名空間聲明。
總之,雖然WPF和CSS都有著類似的樣式機(jī)制,但是它們并不相通。使用wpfcss庫(kù)可以使WPF應(yīng)用程序能夠使用CSS,而且還能讓開(kāi)發(fā)者更加方便靈活地編寫(xiě)樣式。