日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

WPF入门(六)样式Style

發布時間:2024/4/11 asp.net 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF入门(六)样式Style 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

wpf提供了一種類似css的對象- style,但是比css更強大。它支持直接設定屬性,更改呈現模板,觸發器,事件觸發等。MSDN描述如下:

MSDN

可以在從 FrameworkElement 或 FrameworkContentElement 派生的任何元素上設置 Style。樣式通常在 Resources 節內部聲明為資源。由于樣式是一種資源,它們遵循適用于所有資源的相同范圍規則,因此樣式的聲明位置將影響它的適用范圍。例如,如果在應用程序定義XAML 文件的根元素中聲明樣式,則該樣式可在應用程序中的任何位置使用。如果您在創建導航應用程序時在該應用程序的一個XAML 文件中聲明了樣式,則該樣式只能在該XAML 文件中使用。有關資源范圍規則的更多信息,請參見。

樣式聲明由 Style 對象構成,該對象包含由一個或多個 Setter 對象組成的集合。每個 Setter 都包含一個 Property 和一個 Value。屬性是樣式所應用于的元素的屬性名。將樣式聲明為資源后,就可以像引用任何其他資源一樣引用樣式。

?

使用 Windows Presentation Foundation (WPF) 樣式和模板化模型不僅可以維護和共享外觀,還可以讓呈現與邏輯分離。樣式和模板化模型包括一套允許您自定義UI 的功能。這套功能包括 Style 類以及下列組件:

  • Trigger

  • EventTrigger 以及 Storyboard

  • ControlTemplate

  • DataTemplate

?

下面代碼演示了 將button控件顯示成圓形,設置背景色等。

代碼 ?1?<Window?x:Class="wpfAppStyleDemo.Window1"
?2?????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
?3?????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
?4?????Title="Window1"?Height="371"?Width="550">
?5?????<Window.Resources>
?6?????????<Style?TargetType="Button">
?7?????????????<!--Set?to?true?to?not?get?any?properties?from?the?themes.-->
?8?????????????<Setter?Property="OverridesDefaultStyle"?Value="True"/>
?9?????????????<Setter?Property="Background"?Value="LightBlue"?/>
10?????????????<Setter?Property="Template">
11?????????????????<Setter.Value>
12?????????????????????<ControlTemplate?TargetType="Button">
13?????????????????????????<Grid>
14?????????????????????????????<Ellipse?Fill="{TemplateBinding?Background}"/>
15?????????????????????????????<ContentPresenter?HorizontalAlignment="Center"
16?????????????????????????????VerticalAlignment="Center"/>
17?????????????????????????</Grid>
18?????????????????????</ControlTemplate>
19?????????????????</Setter.Value>
20?????????????</Setter>
21?????????</Style>
22?
23?????????<Style?TargetType="Button"?x:Key="btnStyle1">
24?????????????<Setter?Property="Background"?Value="#66FF33"/>
25?????????</Style>
26?
27?????????<Style?TargetType="{x:Type?TextBlock}">
28?????????????<Setter?Property="FontFamily"?Value="Segoe?Black"?/>
29?????????????<Setter?Property="HorizontalAlignment"?Value="Center"?/>
30?????????????<Setter?Property="FontSize"?Value="9pt"?/>
31?????????????<Setter?Property="Foreground"?Value="#333333"?/>
32?????????????<Setter?Property="Background"?Value="Yellow"?/>
33?????????</Style>
34?
35?????</Window.Resources>
36?????<Grid>
37?????????<Grid.ColumnDefinitions>
38?????????????<ColumnDefinition?Width="277*"?/>
39?????????????<ColumnDefinition?Width="251*"?/>
40?????????</Grid.ColumnDefinitions>
41?????????<Button?Height="23"?HorizontalAlignment="Left"?Margin="44,79,0,0"?Name="button1"?VerticalAlignment="Top"?Width="75">Button</Button>
42?????????<Button?Style="{StaticResource?btnStyle1}"?Height="23"?HorizontalAlignment="Right"?Margin="0,79,47,0"?Name="button2"?VerticalAlignment="Top"?Width="75">Button</Button>
43?????????<TextBlock?Margin="75,140,93,156"?Name="textBlock1">
44?????????????WPF演示,Style樣式
45?????????</TextBlock>
46?????</Grid>
47?</Window>
48?

?

注意 sytle 的作用域 TargetType指定了style要適用到的“類型”,我們可以在這里指向控件。如果一個style沒有 x:key 標記,那么它將適用在它的作用域下的所有控件類型。演示代碼第23行和42行演示了 顯式指定一個style的用法,值得一提的是,“如果顯式的為一個控件指定了style ,那么 這個style具有更高的優先權”。本例中第42行的button僅僅作用了一個style,全局的(第6行聲明的)style對它無效。

style的強大之處在這里體現,他可以更改一個控件的ControlTemplate,本例中 將一個矩形的button變成了橢圓。

style的trigger在上一篇文章里已經用到,本例就不再演示。

?

本節完

待續ing...

轉載于:https://www.cnblogs.com/vir56k/archive/2011/01/14/1935703.html

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的WPF入门(六)样式Style的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。