当前位置: 首页 > news >正文

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 效果和交互逻辑。

http://www.dtcms.com/a/515241.html

相关文章:

  • 【WPF】自定义颜色拾取器
  • MahApps.Metro WPF 开发使用过程中遇到的问题 - 未能加载文件或程序集“Microsoft.Xaml.Behaviors,
  • 【普中Hi3861开发攻略--基于鸿蒙OS】-- 第 26 章 WIFI实验-AP 建立网络
  • ARM架构深度解析:ARMv7、ARMv8、ARMv9的技术演进、芯片实现与未来展望
  • 线下剧本杀预约小程序核心功能玩法解析:轻量化载体重构娱乐消费生态
  • 【矩阵分析与应用】【第8章 特征分析】【8.3 凯莱-哈密顿定理求解矩阵高次幂详解】
  • 合肥制作企业网站免费收录网站推广
  • 阿里云安装docker-compose
  • Centos 7 :VMware Tools 启动脚本未能在虚拟机中成功运行
  • 基于vue的停车场管理系统
  • 短剧小程序系统开发:开启影视娱乐新纪元
  • 系统架构设计师备考第49天——数字孪生体云计算大数据技术
  • 阿里云渠道商:阿里云哪些功能很必要?
  • 鱼馆网站的前期策划网站审核备案 几天
  • 建设银行申请信用卡网站股权融资
  • 即刻创作:用 Trickle + GLM-4.6 API 构建互动小说创作工具
  • 标定系数为什么会存储在相机模组里面,在标定的时候,算法是在割草机的X3板上运行的啊?
  • windows系统安装wls/Ubuntu子系统教程
  • 【Linux】gcc/g++编辑器 初识动静态库 程序翻译过程
  • AI服务器工作之系统下查看硬件(ubuntu为例)
  • 基于python智慧医疗问答系统 知识图谱 Flask框架 数据可视化 neo4j图数据库 计算机专业 优秀项目(源码)✅
  • P3957 [NOIP 2017 普及组] 跳房子
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(6):文法運用
  • 【数据结构入坑指南】--《层序分明:堆的实现、排序与TOP-K问题一站式攻克(源码实战)》
  • 做网站的公司怎么推销湘潭做网站价格 q磐石网络
  • 用Python Streamlit sqlite3 写一个简单博客
  • 微型计算机接口与原理笔记
  • 大学生免费ppt网站广州分销商城开发
  • 良策金宝AI定制方案:构建企业专属的“工程智能体”
  • docker 容器web站点 中文文件名访问404问题