`
lindexi-gd
  • 浏览: 139510 次
社区版块
存档分类
最新评论

C# TextBlock 上标

 
阅读更多

我需要做一个函数,显示 <nobr><span class="math" id="MathJax-Span-37" style="width: 1.283em; display: inline-block;"><span style="display: inline-block; position: relative; width: 1.016em; height: 0px; font-size: 125%;"><span style="position: absolute; clip: rect(1.336em 1000em 2.509em -0.424em); top: -2.344em; left: 0.003em;"><span class="mrow" id="MathJax-Span-38"><span class="msubsup" id="MathJax-Span-39"><span style="display: inline-block; position: relative; width: 1.016em; height: 0px;"><span style="position: absolute; clip: rect(1.976em 1000em 2.723em -0.424em); top: -2.557em; left: 0.003em;"><span class="mi" id="MathJax-Span-40" style="font-family: MathJax_Math-italic;">x</span><span style="display: inline-block; width: 0px; height: 2.563em;"></span></span><span style="position: absolute; top: -2.824em; left: 0.589em;"><span class="mn" id="MathJax-Span-41" style="font-size: 70.7%; font-family: MathJax_Main;">2</span><span style="display: inline-block; width: 0px; height: 2.456em;"></span></span></span></span></span><span style="display: inline-block; width: 0px; height: 2.349em;"></span></span></span><span style="border-left: 0.003em solid; display: inline-block; overflow: hidden; width: 0px; height: 1.203em; vertical-align: -0.063em;"></span></span></nobr><script type="math/tex" id="MathJax-Element-8"> x^2 </script> ,但是看起来用 TextBlock 做的不好看。

我用 WPF 写的上标看起来不好看,但是最后有了一个简单方法让他好看。

本文告诉大家如何做一个好看的上标。

<!--more-->

一开始做的方法:

把下面代码写在页面里,使用对齐是上面,改变字号,于是看起来就是上标。

          <TextBlock x:Name="TextBlock">
            <Run Text="y=x"></Run>
            <Run Text="2" BaselineAlignment="TextTop"
                 FontSize="8"></Run>
        </TextBlock>

于是看起来:

其实已经可以了,但是发现距离很大,那么如何让距离变小?

我找了很久,发现可以在 xaml.cs 上写。

            var textBlock = TextBlock;
            textBlock.Inlines.Add(new Run("y = "));
            textBlock.Inlines.Add(new Run("x"));
            Run run=new Run();
            run.FontSize = 7;
            run.BaselineAlignment = BaselineAlignment.TextTop;
            run.Text = "2";
            textBlock.Inlines.Add(run);

代码一样,但是写的地方不一样,可以看到现在的上标就好看了。

UWP 上标也一样。为什么写在 Xaml 间隔会那么大,是不是WR弄的?其实试试下面代码,注意不要格式化,直接写的样子和我的一样试试。

          <TextBlock x:Name="TextBlock">
            <TextBlock.Inlines>
                <Run Text="y=x"/><Run Text="2" BaselineAlignment="TextTop"
                 FontSize="8"/>
            </TextBlock.Inlines>
        </TextBlock>

原因就是Run写在两行,会把换行给记下,于是间隔就大了,写在一起的Run就不会出现这个距离。

但是我的 格式化会把Run放在下一行,所以可能我这里看的好的,在你这就会换行,看起来上标就有了距离。

我把他传上 csdn ,大家可以下载来验证。

代码:http://download.csdn.net/detail/lindexi_gd/9751879

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    c# 程序中如何出现某单位的上标

    在C#程序开发中,有时候我们需要在用户界面上显示一些带有上标的文本,比如常见的面积单位“平方米”(m²)。本文将详细介绍如何在C#应用程序中实现这种文本格式,并探讨相关的技术细节。 ### 一、基础知识:...

    WPF 文字上标例子

    除了直接在XAML中编写外,也可以在C#代码-behind中动态创建`Run`元素并添加到`TextBlock`的`Inlines`集合中: ```csharp TextBlock textBlock = new TextBlock(); textBlock.Inlines.Add("常规文本"); Run ...

    一个TextBox伪装的可以复制的TextBlock

    在Windows Presentation Foundation (WPF)应用开发中,`TextBox`和`TextBlock`是两种常见的文本展示控件。`TextBox`通常用于用户输入文本,具备编辑和格式化功能,而`TextBlock`则主要用于静态文本展示,不支持直接...

    TextBlock控件文字垂直居中源码

    在Windows Presentation Foundation (WPF) 中,TextBlock控件是最常用的文字展示元素,它用于显示单行或多行文本。在WPF中,我们经常会遇到需求,使得TextBlock中的文字能够垂直居中显示,以达到良好的视觉效果。在...

    从TextBlock拖拽到TextBlock

    在你的场景中,“从TextBlock拖拽到TextBlock”是一个典型的拖放操作应用,通常用于文本编辑或数据传输。 首先,我们需要了解`TextBlock`是WPF中的一个控件,用于显示单行或多行文本。在实现拖放功能时,我们通常会...

    wpf 实现textblock内容自动滚动动画

    在WPF(Windows Presentation Foundation)中,TextBlock是用于显示文本的基本控件。然而,当文本内容过长,无法在控件的固定区域内完全显示时,我们可能需要实现一种自动滚动的效果,使得被遮盖的部分能够逐渐展现...

    WPF textblock搜索关键字,并修改字体格式(颜色和背景色),源工程代码

    总结,这个项目的核心是利用WPF的TextBlock和富文本特性,结合C#代码,实现对文本中关键词的搜索和格式化,以达到高亮显示的效果。通过理解和实践这样的例子,开发者可以更好地掌握WPF中的文本处理和UI动态更新技术...

    解决windows phone 7中TextBlock只文字显示不完全的问题

    在Windows Phone 7 (WP7)开发中,TextBlock控件是用于展示文本内容的常用组件,但在处理大量文本时可能会遇到显示不全的问题。当TextBlock中的文字超过其可视区域大小时,超出部分的文字将不会显示,这给用户阅读...

    C# TextBox 换行功能实现

    C# TextBox 换行功能实现 C# TextBox 换行功能实现是指在 Windows Form 应用程序中,让 TextBox 控件能够正确地显示多行文本。要实现这个功能,需要将 TextBox 控件的 Multiline 属性设置为 true。然而,在代码中...

    WPF将控件中的文字旋转.zip

    &lt;TextBlock.Text&gt;旋转的文字&lt;/TextBlock.Text&gt; &lt;/TextBlock&gt; ``` 7. **动态旋转**:如果需要根据用户交互或其他条件动态改变旋转角度,可以通过数据绑定或者事件处理来更新`RotateTransform`的`Angle`属性。 8...

    上标下标的实现

    在计算机编程领域,特别是在网页设计和文本处理中,上标和下标是常见的文本格式化需求。它们用于表示数学公式、化学方程式、科学符号等。上标是文本中的小型字符,位于基线之上,而下标则是在基线之下。在本文中,...

    C# 跑马灯 C#滚动文字

    &lt;TextBlock x:Name="textBlock" Text="C# 跑马灯 C#滚动文字" HorizontalAlignment="Left" Margin="0,50,0,0"&gt; &lt;TextBlock.RenderTransform&gt; &lt;/TextBlock.RenderTransform&gt; &lt;/TextBlock&gt; ``` ```csharp // ...

    wpf 实用滚动字幕(源代码)

    1. TextBlock:在WPF中,TextBlock是最基本的文本显示控件,用于展示静态文本。在创建滚动字幕时,我们可以利用TextBlock来存放要滚动的文字。 2. Storyboard:这是WPF中的一个关键概念,用于定义和控制动画。通过...

    TextEditor,c# WinForm下的文本编辑控件

    TextEditor是本人根据自己的需求简单制作的一款c# WinForm下的文本编辑控件,因为已经能满足自己当前的需求,所以1.0版本只 完成了简单的功能: 1.字体选择 2.字体大小 3.样式:粗体、斜体、下划线 4.字体颜色 5....

    c#编写 创建文件写文件读文件,设计文字的字体背景颜色

    &lt;TextBlock.Foreground&gt;#0000FF&lt;/TextBlock.Foreground&gt; &lt;TextBlock.Background&gt;#FFFF00&lt;/TextBlock.Background&gt; &lt;/TextBlock&gt; ``` 以上就是关于C#中创建、写入、读取文件以及设计文字字体和背景颜色的基本操作。...

    DataGridView RichTextBox 右击菜单 上标 下标 富文本操作

    并将其`DataGridViewCellStyle`设置为`DataGridViewTextBoxCellStyle`,然后将该列的`DefaultCellStyle`的`DataFormat`属性设置为`TextFormat.Rtf`,这样我们就可以在这一列中处理RTF(Rich Text Format)格式的文本...

    C# 图片添加水印(图片或者文字)

    var textBlock = new TextBlock { Text = "水印文字", FontFamily = new FontFamily("Arial"), Foreground = Brushes.Gray, Opacity = 0.5 }; RenderTargetBitmap renderBitmap = new RenderTargetBitmap(text...

    字体动画实例(C#版)

    TextBlock textBlock = new TextBlock(); TranslateTransform transform = new TranslateTransform(); textBlock.RenderTransform = transform; Storyboard.SetTarget(doubleAnim, transform); Storyboard....

    C# 文本的旋转显示

    &lt;TextBlock Text="旋转的文本"&gt; &lt;TextBlock.RenderTransform&gt; &lt;/TextBlock.RenderTransform&gt; &lt;/TextBlock&gt; ``` 这里`Angle`属性决定了旋转的角度,值为45表示旋转45度。`RenderTransform`属性应用了变换,使得...

    C#字幕滚动 C#字幕滚动

    这里我们使用了TranslationTransform来平移TextBlock,DoubleAnimation则控制动画的起始位置、结束位置和持续时间。 字幕数据通常以SRT、ASS或VTT等格式存储,这些格式包含了时间戳和字幕内容。在C#中,我们可以...

Global site tag (gtag.js) - Google Analytics