WPF 常用样式属性及示例笔记

一、基础样式属性示例

  1. 背景与前景

    复制代码
    <!-- 背景色与字体颜色 -->
    <TextBlock 
        Text="背景与前景示例"
        Background="#3498db"  <!-- 背景色(支持十六进制、命名颜色、Brush对象) -->
        Foreground="White"/>  <!-- 前景色(字体颜色) -->
  2. 字体相关

    复制代码
    <TextBlock 
        Text="字体样式示例"
        FontFamily="Microsoft YaHei"  <!-- 字体家族 -->
        FontSize="16"                 <!-- 字体大小 -->
        FontWeight="Bold"             <!-- 粗细:Bold/Normal/Thin等 -->
        FontStyle="Italic"/>          <!-- 倾斜:Italic/Normal -->
  3. 尺寸与边距

    复制代码
    <Button 
        Content="尺寸与边距"
        Width="120"         <!-- 宽度 -->
        Height="40"         <!-- 高度 -->
        Margin="10,5,10,5"  <!-- 外间距:左,上,右,下 -->
        Padding="15,8"/>    <!-- 内间距:左,上,右,下 -->
  4. 文本装饰与格式

    复制代码
    <TextBlock 
        Text="文本装饰示例"
        TextDecorations="Underline"  <!-- 装饰:Underline/Strikethrough/Overline -->
        TextIndent="20"              <!-- 首行缩进(像素) -->
        LineHeight="25"              <!-- 行高 -->
        TextWrapping="Wrap"/>        <!-- 换行:Wrap/NoWrap/WrapWithOverflow -->
  5. 对齐方式

    复制代码
    <!-- 控件对齐(相对于父容器) -->
    <Button 
        Content="控件对齐"
        HorizontalAlignment="Right"  <!-- 水平:Left/Center/Right/Stretch -->
        VerticalAlignment="Center"/> <!-- 垂直:Top/Center/Bottom/Stretch -->
    ​
    <!-- 内容对齐(控件内部内容) -->
    <Button 
        Content="内容对齐"
        Width="100"
        HorizontalContentAlignment="Left"  <!-- 内容水平对齐 -->
        VerticalContentAlignment="Bottom"/> <!-- 内容垂直对齐 -->
  6. 边框属性

    复制代码
    <TextBox 
        Text="边框示例"
        BorderBrush="#bdc3c7"    <!-- 边框颜色 -->
        BorderThickness="2"/>    <!-- 边框粗细 -->
  7. 透明度与可见性

    复制代码
    <Button 
        Content="透明度示例"
        Opacity="0.7"/>  <!-- 透明度:0-1之间,1为完全不透明 -->
    ​
    <Button 
        Content="可见性示例"
        Visibility="Collapsed"/>  <!-- 可见性:Visible/Hidden/Collapsed -->
        <!-- Hidden:隐藏但保留空间;Collapsed:隐藏且不保留空间 -->
  8. 控件层级

    复制代码
    <Canvas>
        <Rectangle Width="100" Height="100" Fill="Red" Canvas.ZIndex="1"/>
        <Rectangle Width="100" Height="100" Fill="Blue" Canvas.ZIndex="2" Margin="50"/>
        <!-- ZIndex值越大,层级越高,显示在上方 -->
    </Canvas>
二、进阶样式:变换(Transform)

变换用于改变控件的形状、位置或方向,常用变换类型:

  1. 平移变换(TranslateTransform)

    复制代码
    <Button Content="平移变换">
        <Button.RenderTransform>
            <TranslateTransform X="20" Y="10"/>  <!-- X:水平偏移,Y:垂直偏移 -->
        </Button.RenderTransform>
    </Button>
  2. 旋转变换(RotateTransform)

    复制代码
    <TextBlock Text="旋转变换">
        <TextBlock.RenderTransform>
            <RotateTransform Angle="15" CenterX="50" CenterY="50"/>
            <!-- Angle:旋转角度,CenterX/Y:旋转中心点 -->
        </TextBlock.RenderTransform>
    </TextBlock>
  3. 缩放变换(ScaleTransform)

    复制代码
    <Image Source="logo.png">
        <Image.RenderTransform>
            <ScaleTransform ScaleX="1.2" ScaleY="1.2"/>  <!-- 缩放比例,大于1放大 -->
        </Image.RenderTransform>
    </Image>
  4. 倾斜变换(SkewTransform)

    复制代码
    <Border BorderBrush="Black" BorderThickness="1" Width="100" Height="50">
        <Border.RenderTransform>
            <SkewTransform AngleX="10" AngleY="5"/>  <!-- 水平和垂直倾斜角度 -->
        </Border.RenderTransform>
    </Border>
  5. 组合变换(TransformGroup)

    复制代码
    <Button Content="组合变换">
        <Button.RenderTransform>
            <TransformGroup>
                <TranslateTransform X="30"/>
                <RotateTransform Angle="10"/>
                <ScaleTransform ScaleX="1.1"/>
            </TransformGroup>
        </Button.RenderTransform>
    </Button>
三、进阶样式:简单动画示例

动画通过改变属性值产生动态效果,基础示例:

  1. 透明度动画

    复制代码
    <Button Content="透明度动画">
        <Button.Triggers>
            <EventTrigger RoutedEvent="MouseEnter">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation 
                            Storyboard.TargetProperty="Opacity"
                            From="0.5" To="1" Duration="0:0:0.3"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Button.Triggers>
    </Button>
  2. 缩放动画

    复制代码
    <Button Content="缩放动画">
        <Button.RenderTransform>
            <ScaleTransform x:Name="scaleTransform"/>
        </Button.RenderTransform>
        <Button.Triggers>
            <EventTrigger RoutedEvent="Click">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation 
                            Storyboard.TargetName="scaleTransform"
                            Storyboard.TargetProperty="ScaleX"
                            From="1" To="1.2" Duration="0:0:0.2"
                            AutoReverse="True"/>  <!-- 自动反向恢复 -->
                        <DoubleAnimation 
                            Storyboard.TargetName="scaleTransform"
                            Storyboard.TargetProperty="ScaleY"
                            From="1" To="1.2" Duration="0:0:0.2"
                            AutoReverse="True"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Button.Triggers>
    </Button>

总结

  • 基础样式属性控制控件的外观和布局,是 UI 设计的基础。

  • 变换(Transform)可以实现控件的平移、旋转、缩放和倾斜,增强 UI 的表现力。

  • 动画通过属性值的动态变化实现交互反馈,提升用户体验。

实际开发中,这些属性常与样式(Style)和触发器(Trigger)结合使用,实现复杂的 UI 效果和交互逻辑。

相关推荐
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_9:(信件语义标记)
前端·css·笔记·ui·html
heimeiyingwang2 小时前
【架构实战】状态机架构:订单/工单状态流转设计
观察者模式·架构·wpf
OBiO20134 小时前
Cell | 突破AAV载体容量限制!路中华/姜玉武/刘太安团队开发AAVLINK系统实现大基因递送
笔记
智者知已应修善业5 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
sakiko_6 小时前
UIKit学习笔记5-使用UITableView制作聊天页面
笔记·学习·swift·uikit
Alice-YUE6 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
小陈phd8 小时前
TensorRT 入门完全指南(一)——从核心定义到生态工具全解析
人工智能·笔记
是上好佳佳佳呀8 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
handler018 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
其实防守也摸鱼9 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf