我需要做一个函数,显示 <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#程序开发中,有时候我们需要在用户界面上显示一些带有上标的文本,比如常见的面积单位“平方米”(m²)。本文将详细介绍如何在C#应用程序中实现这种文本格式,并探讨相关的技术细节。 ### 一、基础知识:...
除了直接在XAML中编写外,也可以在C#代码-behind中动态创建`Run`元素并添加到`TextBlock`的`Inlines`集合中: ```csharp TextBlock textBlock = new TextBlock(); textBlock.Inlines.Add("常规文本"); Run ...
在Windows Presentation Foundation (WPF)应用开发中,`TextBox`和`TextBlock`是两种常见的文本展示控件。`TextBox`通常用于用户输入文本,具备编辑和格式化功能,而`TextBlock`则主要用于静态文本展示,不支持直接...
在Windows Presentation Foundation (WPF) 中,TextBlock控件是最常用的文字展示元素,它用于显示单行或多行文本。在WPF中,我们经常会遇到需求,使得TextBlock中的文字能够垂直居中显示,以达到良好的视觉效果。在...
在你的场景中,“从TextBlock拖拽到TextBlock”是一个典型的拖放操作应用,通常用于文本编辑或数据传输。 首先,我们需要了解`TextBlock`是WPF中的一个控件,用于显示单行或多行文本。在实现拖放功能时,我们通常会...
在WPF(Windows Presentation Foundation)中,TextBlock是用于显示文本的基本控件。然而,当文本内容过长,无法在控件的固定区域内完全显示时,我们可能需要实现一种自动滚动的效果,使得被遮盖的部分能够逐渐展现...
总结,这个项目的核心是利用WPF的TextBlock和富文本特性,结合C#代码,实现对文本中关键词的搜索和格式化,以达到高亮显示的效果。通过理解和实践这样的例子,开发者可以更好地掌握WPF中的文本处理和UI动态更新技术...
在Windows Phone 7 (WP7)开发中,TextBlock控件是用于展示文本内容的常用组件,但在处理大量文本时可能会遇到显示不全的问题。当TextBlock中的文字超过其可视区域大小时,超出部分的文字将不会显示,这给用户阅读...
C# TextBox 换行功能实现 C# TextBox 换行功能实现是指在 Windows Form 应用程序中,让 TextBox 控件能够正确地显示多行文本。要实现这个功能,需要将 TextBox 控件的 Multiline 属性设置为 true。然而,在代码中...
<TextBlock.Text>旋转的文字</TextBlock.Text> </TextBlock> ``` 7. **动态旋转**:如果需要根据用户交互或其他条件动态改变旋转角度,可以通过数据绑定或者事件处理来更新`RotateTransform`的`Angle`属性。 8...
在计算机编程领域,特别是在网页设计和文本处理中,上标和下标是常见的文本格式化需求。它们用于表示数学公式、化学方程式、科学符号等。上标是文本中的小型字符,位于基线之上,而下标则是在基线之下。在本文中,...
<TextBlock x:Name="textBlock" Text="C# 跑马灯 C#滚动文字" HorizontalAlignment="Left" Margin="0,50,0,0"> <TextBlock.RenderTransform> </TextBlock.RenderTransform> </TextBlock> ``` ```csharp // ...
1. TextBlock:在WPF中,TextBlock是最基本的文本显示控件,用于展示静态文本。在创建滚动字幕时,我们可以利用TextBlock来存放要滚动的文字。 2. Storyboard:这是WPF中的一个关键概念,用于定义和控制动画。通过...
TextEditor是本人根据自己的需求简单制作的一款c# WinForm下的文本编辑控件,因为已经能满足自己当前的需求,所以1.0版本只 完成了简单的功能: 1.字体选择 2.字体大小 3.样式:粗体、斜体、下划线 4.字体颜色 5....
<TextBlock.Foreground>#0000FF</TextBlock.Foreground> <TextBlock.Background>#FFFF00</TextBlock.Background> </TextBlock> ``` 以上就是关于C#中创建、写入、读取文件以及设计文字字体和背景颜色的基本操作。...
并将其`DataGridViewCellStyle`设置为`DataGridViewTextBoxCellStyle`,然后将该列的`DefaultCellStyle`的`DataFormat`属性设置为`TextFormat.Rtf`,这样我们就可以在这一列中处理RTF(Rich Text Format)格式的文本...
var textBlock = new TextBlock { Text = "水印文字", FontFamily = new FontFamily("Arial"), Foreground = Brushes.Gray, Opacity = 0.5 }; RenderTargetBitmap renderBitmap = new RenderTargetBitmap(text...
TextBlock textBlock = new TextBlock(); TranslateTransform transform = new TranslateTransform(); textBlock.RenderTransform = transform; Storyboard.SetTarget(doubleAnim, transform); Storyboard....
<TextBlock Text="旋转的文本"> <TextBlock.RenderTransform> </TextBlock.RenderTransform> </TextBlock> ``` 这里`Angle`属性决定了旋转的角度,值为45表示旋转45度。`RenderTransform`属性应用了变换,使得...
这里我们使用了TranslationTransform来平移TextBlock,DoubleAnimation则控制动画的起始位置、结束位置和持续时间。 字幕数据通常以SRT、ASS或VTT等格式存储,这些格式包含了时间戳和字幕内容。在C#中,我们可以...