![14WPF樣式與模板_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/0dc23951-99fb-4a6b-aa5d-5ccb728c3234/0dc23951-99fb-4a6b-aa5d-5ccb728c32341.gif)
![14WPF樣式與模板_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/0dc23951-99fb-4a6b-aa5d-5ccb728c3234/0dc23951-99fb-4a6b-aa5d-5ccb728c32342.gif)
![14WPF樣式與模板_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/0dc23951-99fb-4a6b-aa5d-5ccb728c3234/0dc23951-99fb-4a6b-aa5d-5ccb728c32343.gif)
![14WPF樣式與模板_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/0dc23951-99fb-4a6b-aa5d-5ccb728c3234/0dc23951-99fb-4a6b-aa5d-5ccb728c32344.gif)
![14WPF樣式與模板_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/0dc23951-99fb-4a6b-aa5d-5ccb728c3234/0dc23951-99fb-4a6b-aa5d-5ccb728c32345.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、WPF樣式類似于Web應(yīng)用程序中的CSS,在WPF中可以為控件定義統(tǒng)一的樣式(Style)。樣式屬于資源的一種,例如為Button定義統(tǒng)一的背景顏色和字體: 1: <Window.Resources> 2: <Style 3: TargetType="Button"> 4: <Setter Property="Background" Value="Yellow" /> 5: <Setter Property="Margin" Value="5" /&
2、gt; 6: <Setter Property="FontFamily" Value="Comic Sans MS"/> 7: <Setter Property="FontSize" Value="14"/> 8: </Style> 9: </Window.Resources> 10: <StackPanel> 11: <Button>Button A</Button> 12: <Button Foreground="
3、;Red" Background="White">Button B</Button> 13: </StackPanel>從執(zhí)行的結(jié)果上來看:· 在Style中定義的屬性及值,影響到Window中的所有類型為Button的控件的樣式 · 在Button中可以新定義其他屬性(如Foreground),覆蓋Style中的定義(Background) 這種樣式,類似于CSS中的類型選擇器,為某種類型定義樣式。此外還可以在Style中加入x:Key屬性,做為特定的樣式(注意,這種也需要定義TargetType);定義時還可以
4、基于已定義的某種樣式,例如,基于剛才的Button的樣式,更改字體的大小及文本的前景及背景顏色: 1: <Window.Resources> 2: <Style 3: TargetType="Button"> 4: <Setter Property="Background" Value="Yellow" /> 5: <Setter Property="Margin" Value="5" /> 6: <Setter Property="
5、;FontFamily" Value="Comic Sans MS"/> 7: <Setter Property="FontSize" Value="14"/> 8: </Style> 9: <Style 10: TargetType="Button" 11: x:Key="ButtonStyleA" 12: BasedOn="StaticResource x:Type Button"> 13: <Setter Pro
6、perty="Background" Value="Green" /> 14: <Setter Property="Foreground" Value="Yellow" /> 15: <Setter Property="FontSize" Value="28"/> 16: </Style> 17: </Window.Resources> 18: <StackPanel> 19: <Button>Bu
7、tton A</Button> 20: <Button Foreground="Red" Background="White">Button B</Button> 21: <Button Style="StaticResource ButtonStyleA">Button C</Button> 22: <Button Style="StaticResource ButtonStyleA" Content="Button D">
8、; 23: <Button.Foreground> 24: <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> 25: <LinearGradientBrush.GradientStops> 26: <GradientStop Offset="0.0" Color="#FFFFFF" /> 27: <GradientStop Offset="1.0" Color="#0
9、000FF" /> 28: </LinearGradientBrush.GradientStops> 29: </LinearGradientBrush> 30: </Button.Foreground> 31: </Button> 32: </StackPanel>二、控件模板(ControlTemplate)當(dāng)使用一個控件時,如果控件的屬性、方法、事件滿足程序的需求,但控件的外觀不滿足要求的時候,除了自定義控件這種方法外,我們還可以通過使用“控件模板”的方式更改控件的外觀。例如定義一個圓形的按鈕: 1: <W
10、indow.Resources> 2: <Style TargetType="Button" x:Key="ButtonStyle"> 3: <!-設(shè)置按鈕的默認的樣式-> 4: <Setter Property="FontFamily" Value="Comic Sans MS"/> 5: <Setter Property="FontSize" Value="14"/> 6: <Setter Property=&q
11、uot;Foreground" Value="Black" /> 7: <Setter Property="Background"> 8: <Setter.Value> 9: <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1"> 10: <LinearGradientBrush.GradientStops> 11: <GradientStop Offset="0.0"
12、; Color="#fff" /> 12: <GradientStop Offset="1.0" Color="#009" /> 13: </LinearGradientBrush.GradientStops> 14: </LinearGradientBrush> 15: </Setter.Value> 16: </Setter> 17: <!-設(shè)置按鈕的模板-> 18: <Setter Property="Template">
13、; 19: <Setter.Value> 20: <ControlTemplate TargetType="Button"> 21: <Grid> 22: <Ellipse Fill="TemplateBinding Background"/> 23: <ContentPresenter 24: Margin="5" 25: HorizontalAlignment="Center" 26: VerticalAlignment="Center"
14、/> 27: </Grid> 28: </ControlTemplate> 29: </Setter.Value> 30: </Setter> 31: </Style> 32: </Window.Resources> 33: <StackPanel> 34: <Button Margin="5" Style="StaticResource ButtonStyle" 35: Width="100" Height="100"
15、 36: Content="My Button"> 37: </Button> 38: <Button Margin="5" Width="200">Common Button</Button> 39: </StackPanel>三、觸發(fā)器值得注意的是,這個時候,對于此按鈕,無論是否獲得焦點、鼠標(biāo)是處于其上方,顯示的外觀均是相同的,如果要定義以上的一些效果,可以使用觸發(fā)器來實現(xiàn)。Style、ControlTemplate 和 DataTemplate 都具有 Triggers 屬性
16、,該屬性可以包含一組觸發(fā)器。某個屬性值更改時,或某個事件引發(fā)時,觸發(fā)器會相應(yīng)地設(shè)置屬性或啟動操作(如動畫操作)。觸發(fā)器包含以下幾種:· 屬性觸發(fā)器 · EventTrigger 和 Storyboard · MultiTrigger、DataTrigger 和 MultiDataTrigger 我們這里可以使用屬性觸發(fā)器來實現(xiàn):例如,在ControlTemplate中(即上段代碼28行前插入以下代碼): 1: <ControlTemplate.Triggers> 2: <Trigger Property="IsMouseOver" Value="True"> 3: <!-鼠標(biāo)在上移動時-> 4: <Setter Property="Foreground" Value="Yellow" /> 5: </Trigger&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股份制合作發(fā)展策略報告書
- 車展場地租賃合同
- 游戲原畫設(shè)計制作作業(yè)指導(dǎo)書
- 小企業(yè)貸款合同
- 2025年昆明貨運駕駛從業(yè)資格考試題庫模擬考試
- 2025年中衛(wèi)貨運上崗證模擬考試
- 2025年湖州道路貨運駕駛員從業(yè)資格證考試題庫
- 2024-2025學(xué)年度九年級物理全冊13.2內(nèi)能教學(xué)設(shè)計2新版新人教版
- 2024年春五年級語文下冊第六單元29戰(zhàn)風(fēng)車導(dǎo)學(xué)案無答案語文S版
- 投招標(biāo)工作計劃
- 2025山東能源集團中級人才庫選拔高頻重點提升(共500題)附帶答案詳解
- 劉潤年度演講2024
- 燃氣經(jīng)營安全重大隱患判定標(biāo)準(zhǔn)課件
- 統(tǒng)編版語文八年級下冊全冊大單元整體教學(xué)設(shè)計表格式教案
- 普通沖床設(shè)備日常點檢標(biāo)準(zhǔn)作業(yè)指導(dǎo)書
- DB51∕T 2630-2019 珙桐扦插育苗技術(shù)規(guī)程
- 科技文獻檢索與利用PPT通用課件
- 《紅樓夢講稿》PPT課件
- DB33∕T 628.1-2021 交通建設(shè)工程工程量清單計價規(guī)范 第1部分:公路工程
- 吉祥喜金剛現(xiàn)證中品事業(yè)六支妙嚴(節(jié)錄)
- 國民中小學(xué)九年一貫課程綱要語文學(xué)習(xí)領(lǐng)域(國語文)
評論
0/150
提交評論