WPF中的文字修饰——上划线,中划线,基线与下划线

article/2025/10/3 20:59:06

我们知道,文字的修饰包括:空心字、立体字、划线字、阴影字、加粗、倾斜等。这里只说划线字的修饰方式,按划线的位置,我们可将之分为:上划线、中划线、基线与下划线。如图:

从上至下,分别为上划线(Overline),中划线(StrikeThrough),基线(Baseline)和下划线(Underline)。

如何实现?

(1)XAML代码:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<TextBlock TextDecorations="Strikethrough" FontSize="72" FontFamily="Arial">A</TextBlock>
</Page>

这里TextDecorations属性可以设置为:OverLine, Strikethrough, Baseline, UnderlineNone,如果没有设置TextDecorations属性,则默认为None,即不带划线修饰。

(2)使用C#代码:
private void SetDefaultStrikethrough()
{
   textBlock1.TextDecorations = TextDecorations.Strikethrough;
}
(为了简洁,这里只列出相关的关键代码,其他代码未用C#列出。textBlock1为TextBlock的名称,在XAML中使用 x:Name="textBlock1"形式标记)

如果要更复杂点的效果,比如需要设置划线的颜色、线粗等,如下图:
文字的特别下划线效果制作

如何制作类似效果呢?
方法是:设置TextBlock的TextDecorations属性,再对TextDecoration的Pen属性进行设置。

如下XAML代码:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Canvas>
<TextBlock FontSize="84" FontFamily="Arial Black" Margin="0,0">
<TextBlock.TextDecorations>
<TextDecoration PenOffset="10" PenOffsetUnit="Pixel" PenThicknessUnit="Pixel">
 <TextDecoration.Pen>
          <Pen Thickness="5">
            <Pen.Brush>
              <LinearGradientBrush Opacity="0.8" StartPoint="0,0.5"  EndPoint="1,0.5">
                <LinearGradientBrush.GradientStops>
                  <GradientStop Color="Yellow" Offset="0" />
                  <GradientStop Color="Red" Offset="1" />
                </LinearGradientBrush.GradientStops>
              </LinearGradientBrush>
            </Pen.Brush>
            <Pen.DashStyle>
              <DashStyle Dashes="1,2,3"/>
            </Pen.DashStyle>
          </Pen>
        </TextDecoration.Pen>
</TextDecoration>
</TextBlock.TextDecorations>
GOOD
</TextBlock>
</Canvas>
</Page>

C#关键代码:
private void SetLinearGradientUnderline()
{
    TextDecoration myUnderline = new TextDecoration();

    Pen myPen = new Pen();
    myPen.Brush = new LinearGradientBrush(Colors.Yellow, Colors.Red, new Point(0, 0.5), new Point(1, 0.5));
    myPen.Brush.Opacity = 0.8;
    myPen.Thickness = 5;
    myPen.DashStyle = DashStyles.Dash;
    myUnderline.Pen = myPen;
    myUnderline.PenThicknessUnit = TextDecorationUnit.FontRecommended;

    TextDecorationCollection myCollection = new TextDecorationCollection();
    myCollection.Add(myUnderline);
    textBlockGood.TextDecorations = myCollection;
}

引申问题:
可不可以同时画上划线、中划线和下划线?比如:可不可以画如下图所示的文武线呢?
文字的文武线


http://chatgpt.dhexx.cn/article/esTi0VFs.shtml

相关文章

Java方法重载中返回值的问题

不能通过设置不同的返回值来实现方法重载&#xff0c;这样设置的方法不一定会编译通过&#xff0c;但Class文件中可以共存。 如下 1. 例证 IDEA工具,JDK8测试&#xff1a; 2. 原因 参考自《深入理解Java虚拟机》(第3版)&#xff0c;如图 在Java语言中&#xff0c;要重载&…

Java 方法重载简单小例子

简单讲&#xff0c;方法重载就是为了方便程序员记忆&#xff0c;比如你有say方法需要有好几个功能&#xff0c;写say1,say2又费事还弱智&#xff0c;就可以采用重载. package java03;public class demo1 {// 练习-------------------public int max(int number1, int number2)…

java 重载的特征_Java中方法的重载详解

一、方法的概念 在之前我们学习了方法的定义,方法实现指定功能的代码块的组合&#xff0c;基本的定义 如下: DEMO&#xff1a;定义一个方法 不需要return语句的方法 二、方法的重载 在开发中很可能在一个类中出现多个功能相似的方法&#xff0c;但是方法的命名要求是见名知意&a…

Java方法覆盖与方法重载

Ps&#xff1a;括号中的内容为自身理解&#xff0c;看到可以略过。本人喜欢想些乱七八糟的东西。 类继承&#xff1a;子类继承父类的状态和行为&#xff0c;同时也可以具有自己的特征。 &#xff08;简单来讲&#xff0c;就是基因&#xff08;非private&#xff09;继承&#…

什么叫java方法重载?

方法重载是指在一个类中定义多个同名的方法&#xff0c;但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时&#xff0c;Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同…

Java 方法重载习题答案

基础题目 第一题&#xff1a;语法练习 语法点&#xff1a;方法定义&#xff0c;方法重载 按步骤编写代码&#xff0c;效果如图所示&#xff1a; 编写步骤&#xff1a; 定义类 Test1,类中定义 main方法,定义int类型a为10, b为10.定义printNum方法,参数为(int iVar, int iVar…

java中方法重载

重载的三个要求&#xff1a;1.在同一个类中&#xff0c;2.同一个方法名&#xff08;不用在意返回值&#xff09;&#xff0c;3.不同的参数&#xff08;参数个数&#xff0c;参数类型&#xff09; 使用重载可以记住一个方法名&#xff0c;使用不同形参&#xff0c;完成不同类似的…

JAVA方法重载优先级

JAVA方法重载优先级 该方法正常执行&#xff0c;没有报空指针异常&#xff0c;是因为调用了&#xff0c;String类中的如下方法&#xff1a; 由于图一valueOf方法中传入的参数为Object类型&#xff0c;所以调用了该方法。 接下来看上面的方法执行结果&#xff0c;报了空指针异…

ROS学习笔记(一)#ROS系统及RoboWare的安装

0.前言 本人目前研一在读&#xff0c;学习&#xff32;&#xff2f;&#xff33;机器人也有半年多了&#xff0c;开此博客决定把&#xff32;&#xff2f;&#xff33;学习从新捋一遍&#xff0e;目前使用Ubuntu 16.04 ROS-&#xff2b;inetic。 1.ROS安装 电脑选择这个教程…

ubuntu18.04 安装 roboware-studio

RoboWare Studio是一个ROS集成开发环境。与ROS匹配性比起其他IDE更好&#xff0c;可以用它开发 ROS更加简单、并且在官网ros wiki中有详细的使用教程。本文主要是在Ubuntu18.04中安装RoboWare Studio。 1.输入指令安装必要的编译程序必须软件包 sudo apt-get install build-es…

ROS集成开发环境 --- RoboWare(安装及学习笔记)

后附 RoboWare中文教程网盘链接 DesignerStudioViewer RoboWare Studio是什么 v1.2.0 32位 debv1.2.0 64位 debv1.2.0 使用手册 pdf RoboWare Studio是一个ROS集成开发环境.使ROS开发更加直观、简单&#xff0c;并且易于操作.可进行ROS工作空间及包的管理&#xff0c;代码编…

ROS学习系列(一):ubuntu16.04下安装 ROS IDE RoboWare Studio 教程

1.下载RoboWare Studio安装包 不要信从官网下载http://www.roboware.me/#/home 这个网站压根就进不去。 从github上下载安装包&#xff0c;链接https://github.com/TonyRobotics/RoboWare/tree/master/Studio&#xff0c;参考手册这个网站也有。 注意版本&#xff1a; 例如目…

在Ubuntu18.04中安装ROS IDE RoboWare Studio 和Visual Studio Code

安装ROS IDE 前言一、安装RoboWare Studio二、安装Visual Studio Code参考文献 前言 一款好的开发工具可以是开发效率提升&#xff0c;ROS官方推荐了常用的ROS开发环境http://wiki.ros.org/IDEs,下文将介绍安装我常用的两种开发环境。 一、安装RoboWare Studio 首先&#xf…

ROS集成开发环境IDE----RoboWare开源

RoboWare中文官网&#xff1a; http://cn.roboware.me/#/home github&#xff1a; https://github.com/TonyRobotics/RoboWare-Studio 目前主要有三款软件产品&#xff1a;DesignerStudioViewer&#xff0c;如下 . . . ---- RoboWare Studio - Open Source RoboWare Studio…

Roboware Studio下载、安装、及解决办法

RoboWare官网&#xff1a;http://www.roboware.me/#/home 如果没有VPN我这里有资料链接: https://pan.baidu.com/s/17q5U1HlGGL0inqcxLuELmw 提取码: upav 选择合适的版本下载&#xff0c;注意32位与64位之分。下载完以后先不要着急安装&#xff0c;为了更好地使用RoboWare St…

Robotium

本文内容&#xff1a;基于Android Studio 的Android自动化测试框架Robotium的开发 版权声明&#xff1a;本文为原创文章&#xff0c;未经允许不得转载 博客地址&#xff1a;http://blog.csdn.net/kevindgk 简介 RobotiumRobotium Recorder 一白盒测试 创建Android项目安装Rob…

ROS笔记(4) RoboWare Studio 的安装

ROS笔记(4) RoboWare Studio 的安装 1. RoboWare Studio的下载2. RoboWare Studio的安装3. RoboWare Studio的开启4.打开工作区1. RoboWare Studio的下载 RoboWare Studio是ROS的一款IDE,基于微软开源的VSCode开发,功能比较强大,使得开发更加快速、简单,是目前较好用的R…

RoboWare Studio入门教程(一)

部分参考&#xff1a;https://blog.csdn.net/qq_41450811/article/details/80305846 应该从ROS的通信机制开始说起&#xff0c;话题通信机制和服务通信机制&#xff0c;还有一种参数管理机制本次不予展开。 本次先以服务通信机制为例子。 服务&#xff08;Service&#xff0…

RoboWare安装教程

RoboWare Studio安装教程 通常ROS的程序都是用C和Python开发的&#xff0c;为了提高开发的效率&#xff0c;我们建议用IDE来写代码。目前在Ubuntu上已经有许多IDE支持ROS开发&#xff0c;比如Eclipse、Qt Creator。不过这些IDE配置起来会比较麻烦&#xff0c;推荐一款适配ROS的…

ROS IDE - RoboWare Studio 安装与使用教程

1. 安装&#xff1a; 去官网 http://www.roboware.me/#/ 下载安装包后正常安装即可。 2. 配置&#xff1a; 安装后会提示git不是最新版本&#xff0c;依次执行下面的命令可更新至最新版&#xff1a; git --version sudo add-apt-repository ppa:git-core/ppa sudo apt-get u…