WPF-06 样式(Style)
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF-06 样式(Style)相关的知识,希望对你有一定的参考价值。
在我们前面介绍资源的时候,我们提到了样式表,如果你之前是做Web开发的,你会发现Style有点类似于Web中的CSS。
控件级别样式
我们可以在控件级别定义自己的样式,控件级别的样式是优先级最高的
<Window x:Class="Example_06.SelfControlStyle"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Example_06"
mc:Ignorable="d" Title="SelfControlStyle" Height="450" Width="800">
<Grid>
<TextBlock Text="TextBlock">
<TextBlock.Style>
<Style>
<Setter Property="TextBlock.Foreground" Value="Red"></Setter>
<Setter Property="TextBlock.FontSize" Value="100"></Setter>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>
</Window>
我们为控件定义了自己的样式
父级控件级别样式
<Window x:Class="Example_06.ParentControlStyle"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Title="MainWindow" Height="450" Width="800">
<StackPanel>
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
<Setter Property="FontSize" Value="40"></Setter>
</Style>
</StackPanel.Resources>
<Button>Button 1</Button>
<Button>Button 2</Button>
<Button Background="red">Button 3</Button>
</StackPanel>
</Window>
上面例子中我们在StackPanel中定义了样式,会应用容器里面所有Button,当然你也可以在Button级别覆盖父控件的样式
Window窗体级别样式
<Window x:Class="Example_06.WindowControlStyle"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Example_06"
mc:Ignorable="d" Title="WindowControlStyle" Height="450" Width="800">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
<Setter Property="FontSize" Value="30"></Setter>
</Style>
</Window.Resources>
<StackPanel>
<Button>Button 1</Button>
<Button>Button 2</Button>
<Button Background="red">Button 3</Button>
</StackPanel>
</Window>
我们将样式移到Window窗体级别,会将样式应用到该窗体的所有Button
应用程序级别样式
<Application x:Class="Example_06.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Example_06"
StartupUri="ParentControlStyle.xaml">
<Application.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Green"></Setter>
<Setter Property="Foreground" Value="White"></Setter>
<Setter Property="FontSize" Value="20"></Setter>
</Style>
</Application.Resources>
</Application>
我们可以将样式定义为应用程序级别样式,样式表的优先级子节点样式可以覆盖父节点的样式,从下往上查找
以上是关于WPF-06 样式(Style)的主要内容,如果未能解决你的问题,请参考以下文章