WPF的样式(Style)继承
生活随笔
收集整理的這篇文章主要介紹了
WPF的样式(Style)继承
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
WPF的樣式(Style)繼承 參考自http://www.cnblogs.com/SkyD/archive/2008/08/09/1264294.html,非常感謝。
用Style的BaseOn屬性可以實(shí)現(xiàn)WPF樣式的顯式繼承,例如,有一個(gè)基樣式:
Code
<Style?x:Key="BASE">
??????<Setter?Property="Control.Background">
??????????<Setter.Value>
?????????????<LinearGradientBrush?StartPoint="0,0"?EndPoint="1,1">
????????????????<GradientStop?Offset="0"?Color="Green"/>
????????????????<GradientStop?Offset="0.5"?Color="Blue"/>
????????????????<GradientStop?Offset="1"?Color="Red"/>
?????????????</LinearGradientBrush>
??????????</Setter.Value>
??????</Setter>
????</Style>
下面分別定義2個(gè)樣式繼承它:
Code
<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?Button}">
??????<Setter?Property="BorderBrush"?Value="Red"></Setter>
????</Style>
????
????<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?TextBox}">
??????<Setter?Property="BorderBrush"?Value="Black"></Setter>
????</Style>
而且還可以繼續(xù)繼承上面定義的樣式,例如對(duì)Button的樣式再次擴(kuò)展:
<Style?BasedOn="{StaticResource?{x:Type?Button}}"?x:Key="NewButton"?TargetType="{x:Type?Button}">
??????<Setter?Property="Margin"?Value="10,0,0,0"></Setter>
????</Style>下面使用這些樣式:
<Grid>??
????<StackPanel?Width="250"?Height="400">
??????<Button?Height="30"></Button>
??????<TextBox?Height="30"></TextBox>
??????<Button?Style="{StaticResource?NewButton}"?Height="30"/>
????</StackPanel>
??</Grid>完整的代碼如下:
Code
<Page
??xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
??xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
??<Page.Resources>
????<Style?x:Key="BASE">
??????<Setter?Property="Control.Background">
??????????<Setter.Value>
?????????????<LinearGradientBrush?StartPoint="0,0"?EndPoint="1,1">
????????????????<GradientStop?Offset="0"?Color="Green"/>
????????????????<GradientStop?Offset="0.5"?Color="Blue"/>
????????????????<GradientStop?Offset="1"?Color="Red"/>
?????????????</LinearGradientBrush>
??????????</Setter.Value>
??????</Setter>
????</Style>
????<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?Button}">
??????<Setter?Property="BorderBrush"?Value="Red"></Setter>
????</Style>
????
????<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?TextBox}">
??????<Setter?Property="BorderBrush"?Value="Black"></Setter>
????</Style>
????
????<Style?BasedOn="{StaticResource?{x:Type?Button}}"?x:Key="NewButton"?TargetType="{x:Type?Button}">
??????<Setter?Property="Margin"?Value="10,0,0,0"></Setter>
????</Style>
??</Page.Resources>
??<Grid>??
????<StackPanel?Width="250"?Height="400">
??????<Button?Height="30"></Button>
??????<TextBox?Height="30"></TextBox>
??????<Button?Style="{StaticResource?NewButton}"?Height="30"/>
????</StackPanel>
??</Grid>
</Page>運(yùn)行后的效果如下圖:
posted on 2008-08-11 16:30 cutebear 閱讀(...) 評(píng)論(...) 編輯 收藏
用Style的BaseOn屬性可以實(shí)現(xiàn)WPF樣式的顯式繼承,例如,有一個(gè)基樣式:
Code
<Style?x:Key="BASE">
??????<Setter?Property="Control.Background">
??????????<Setter.Value>
?????????????<LinearGradientBrush?StartPoint="0,0"?EndPoint="1,1">
????????????????<GradientStop?Offset="0"?Color="Green"/>
????????????????<GradientStop?Offset="0.5"?Color="Blue"/>
????????????????<GradientStop?Offset="1"?Color="Red"/>
?????????????</LinearGradientBrush>
??????????</Setter.Value>
??????</Setter>
????</Style>
下面分別定義2個(gè)樣式繼承它:
Code
<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?Button}">
??????<Setter?Property="BorderBrush"?Value="Red"></Setter>
????</Style>
????
????<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?TextBox}">
??????<Setter?Property="BorderBrush"?Value="Black"></Setter>
????</Style>
而且還可以繼續(xù)繼承上面定義的樣式,例如對(duì)Button的樣式再次擴(kuò)展:
<Style?BasedOn="{StaticResource?{x:Type?Button}}"?x:Key="NewButton"?TargetType="{x:Type?Button}">
??????<Setter?Property="Margin"?Value="10,0,0,0"></Setter>
????</Style>下面使用這些樣式:
<Grid>??
????<StackPanel?Width="250"?Height="400">
??????<Button?Height="30"></Button>
??????<TextBox?Height="30"></TextBox>
??????<Button?Style="{StaticResource?NewButton}"?Height="30"/>
????</StackPanel>
??</Grid>完整的代碼如下:
Code
<Page
??xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
??xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
??<Page.Resources>
????<Style?x:Key="BASE">
??????<Setter?Property="Control.Background">
??????????<Setter.Value>
?????????????<LinearGradientBrush?StartPoint="0,0"?EndPoint="1,1">
????????????????<GradientStop?Offset="0"?Color="Green"/>
????????????????<GradientStop?Offset="0.5"?Color="Blue"/>
????????????????<GradientStop?Offset="1"?Color="Red"/>
?????????????</LinearGradientBrush>
??????????</Setter.Value>
??????</Setter>
????</Style>
????<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?Button}">
??????<Setter?Property="BorderBrush"?Value="Red"></Setter>
????</Style>
????
????<Style?BasedOn="{StaticResource?BASE}"?TargetType="{x:Type?TextBox}">
??????<Setter?Property="BorderBrush"?Value="Black"></Setter>
????</Style>
????
????<Style?BasedOn="{StaticResource?{x:Type?Button}}"?x:Key="NewButton"?TargetType="{x:Type?Button}">
??????<Setter?Property="Margin"?Value="10,0,0,0"></Setter>
????</Style>
??</Page.Resources>
??<Grid>??
????<StackPanel?Width="250"?Height="400">
??????<Button?Height="30"></Button>
??????<TextBox?Height="30"></TextBox>
??????<Button?Style="{StaticResource?NewButton}"?Height="30"/>
????</StackPanel>
??</Grid>
</Page>運(yùn)行后的效果如下圖:
posted on 2008-08-11 16:30 cutebear 閱讀(...) 評(píng)論(...) 編輯 收藏
轉(zhuǎn)載于:https://www.cnblogs.com/bear831204/archive/2008/08/11/1265336.html
總結(jié)
以上是生活随笔為你收集整理的WPF的样式(Style)继承的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: asp.net MD5加密函数(c#)
- 下一篇: 【求助】windows server 2