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>
相关推荐
FuckPatience1 天前
WPF DataGrid 行根据某个属性循环变色动画
wpf
一条闲鱼_mytube3 天前
高并发短链接系统设计
wpf
一个天蝎座 白勺 程序猿4 天前
IoTDB集群扩容:从慌乱到从容的经验分享
数据库·wpf·时序数据库·iotdb
samble5 天前
从零搭建灌装监控系统(十三):报警系统设计,生命周期与通知
c#·wpf·mvvm·modbus·工业控制
samble6 天前
从零搭建灌装监控系统(十二):配置系统,原子写入与容错
c#·wpf·mvvm·modbus·工业控制
蜗牛互联网8 天前
OLMo-core 3的token gerrymandering提醒:MoE路由要按时间窗验收
java·人工智能·wpf
LateFrames8 天前
WPF 升级选型:用 .NET 8 还是 .NET 10
.net·wpf·.net8·.net10
samble9 天前
从零搭建灌装监控系统(十):生产追溯,条码触发自动记录
c#·wpf·mvvm·modbus·工业控制
SamChan9011 天前
PDF页面旋转与CropBox陷阱:译文回填位置总是错位的根因实测
python·ai·pdf·wpf
SamChan9012 天前
PDF翻译时页眉页脚总在捣乱?跨页重复文本块的检测与过滤实测
人工智能·python·ai·pdf·wpf