WPF Style样式设置

1.本window设置样式

xml 复制代码
<Window x:Class="WPF_Study.MainWindow"
        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:WPF_Study"
        mc:Ignorable="d"
        Title="WPF入门" Height="600" Width="800">
    <!--Window 资源相关-->
    <Window.Resources>
        <!--Style 针对按钮类型 默认样式-->
        <Style TargetType="Button">
            <Setter Property="Background" Value="WhiteSmoke"/>
            <Setter Property="FontSize" Value="20"/>
            <Setter Property="Height" Value="40"/>
            <Setter Property="Width" Value="200"/>
            <Setter Property="Margin" Value="0,10, 20, 20"/>
        </Style>

        <!--Style 继承默认样式 定义特殊属性-->
        <Style x:Key="LoginStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
            <Setter Property="Background" Value="Green"/>
        </Style>

        <!--Style 继承默认样式 定义特殊属性-->
        <Style x:Key="QuitStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
            <Setter Property="Background" Value="Red"/>
        </Style>

    </Window.Resources>
    <Grid>
        <StackPanel>
            <!-- 设置单个按钮属性 背景色:Background 字体大小:FontSize 宽度:Width 高度:Height -->
            <Button Content="登录" Background="Gray" FontSize="20" Width="200" Height="40"/>

            <!-- 使用样式 LoginStyle -->
            <Button Style="{StaticResource LoginStyle}" Content="登录"/>

            <!-- 使用样式 QuitStyle -->
            <Button Style="{StaticResource QuitStyle}">
                <Button.Content>退出</Button.Content>
                <Button.FontSize>20</Button.FontSize>
            </Button>

            <!-- 使用默认样式 -->
            <Button Content="取消"/>

        </StackPanel>
    </Grid>
</Window>

2.全局样式设置

1.创建样式文件(BaseButtonStyle.xaml)

xml 复制代码
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <!--Style 针对按钮类型 默认样式-->
    <Style TargetType="Button">
        <Setter Property="Background" Value="WhiteSmoke"/>
        <Setter Property="FontSize" Value="20"/>
        <Setter Property="Height" Value="40"/>
        <Setter Property="Width" Value="200"/>
        <Setter Property="Margin" Value="0,10, 20, 20"/>
    </Style>

    <!--Style 继承默认样式 定义特殊属性-->
    <Style x:Key="LoginStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="Background" Value="Green"/>
    </Style>

    <!--Style 继承默认样式 定义特殊属性-->
    <Style x:Key="QuitStyle" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="Background" Value="Red"/>
    </Style>
</ResourceDictionary>

2.设置全局样式(修改App.xaml)

xml 复制代码
<Application x:Class="WPF_Study.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WPF_Study"
             StartupUri="MainWindow.xaml">
    <!--StartupUri="MainWindow.xaml" -->

    <!--设置全局样式  -->
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- 样式地址  -->
                <ResourceDictionary Source="/BaseButtonStyle.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>     
    </Application.Resources>
</Application>

3.设置选择样式

xml 复制代码
<Window x:Class="WPF_Study.StyleWindow"
        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:WPF_Study"
        mc:Ignorable="d"
        Title="StyleWindow" Height="450" Width="800">

    <Grid>
        <StackPanel>
            <!-- 设置单个按钮属性 背景色:Background 字体大小:FontSize 宽度:Width 高度:Height -->
            <Button Content="登录" Background="Gray" FontSize="20" Width="200" Height="40"/>

            <!-- 使用样式 LoginStyle -->
            <Button Style="{StaticResource LoginStyle}" Content="登录"/>

            <!-- 使用样式 QuitStyle -->
            <Button Style="{StaticResource QuitStyle}">
                <Button.Content>退出</Button.Content>
                <Button.FontSize>20</Button.FontSize>
            </Button>

            <!-- 使用默认样式 -->
            <Button Content="取消"/>

        </StackPanel>
    </Grid>
</Window>
相关推荐
helloworddm8 小时前
UnregisterManyAsync
wpf
军训猫猫头9 小时前
3.NModbus4 长距离多设备超时 C# + WPF 完整示例
c#·.net·wpf·modbus
Aevget10 小时前
DevExpress WPF中文教程:Data Grid - 如何绑定到有限制的自定义服务(一)?
ui·.net·wpf·devexpress·ui开发·wpf界面控件
Macbethad11 小时前
半导体设备工厂自动化软件技术方案
wpf·智能硬件
Macbethad11 小时前
半导体设备报警诊断程序技术方案
wpf·智能硬件
Macbethad1 天前
技术方案:工业控制系统架构设计
wpf
狮恒1 天前
OpenHarmony Flutter 分布式数据持久化:跨设备数据一致性与同步方案
分布式·flutter·wpf·openharmony
狮恒2 天前
OpenHarmony Flutter 分布式数据管理:跨设备数据同步与一致性保障方案
分布式·flutter·wpf·openharmony
Macbethad2 天前
工业设备IO模拟程序
wpf
狮恒2 天前
OpenHarmony Flutter 分布式设备发现与连接:无感组网与设备协同管理方案
分布式·flutter·wpf·openharmony