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>
相关推荐
ifeng09181 天前
HarmonyOS实战项目:AI健康助手(影像识别与健康分析)
人工智能·华为·wpf·harmonyos
Aevget1 天前
界面控件Telerik UI for WPF 2025 Q3亮点 - 集成AI编码助手
人工智能·ui·wpf·界面控件·ui开发·telerik
张人玉1 天前
WPF 数据绑定与转换器详解
c#·wpf·light
主宰者1 天前
WPF CalcBinding简化判断逻辑
c#·.net·wpf
Aevget1 天前
DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(五)
wpf·界面控件·devexpress·ui开发·.net 10
张人玉2 天前
C#WPF UI路由事件:事件冒泡与隧道机制
ui·c#·wpf
Aevget2 天前
DevExpress WPF v25.2新功能预览 - 支持将JetBrains Rider与报表设计器集成
.net·wpf·界面控件·devexpress·ui开发
Aevget3 天前
界面控件DevExpress WPF v25.1新版亮点:AI功能的全面升级
c#·.net·wpf·界面控件·devexpress·ui开发
beyond谚语4 天前
第一章 WPF概述
wpf
necessary6535 天前
从工行“余额归零”事件看CAP定理:当金融系统在一致性与可用性之间做出选择
分布式·金融·wpf·可用性测试