处理字体在WPF

本文关键字:WPF 字体 处理 | 更新日期: 2023-09-27 18:11:23

这是我的上下文:我们正在使用WPF为我们的产品创建一个新的Windows用户界面。因为我们是跨平台的,所以Label.ContentButton.Content的所有信息在应用程序的其他部分(用C编写)中都是已知的,而不是在XAML中定义的。

问题是:我们想要处理放在WPF组件内容中的字符串。我看到我们有一些属性Label.Content.FontFamilyLabel.Content.Size,但图形属性不一定对所有字符串都相同。

例如:这是我厂牌的内容:"Hello guys, thank you to help me"。有没有可能

  • 下划线"thank you"
  • 将所有大写字母更改为红色
  • 更改这些大写字母的大小

实际上,我们正在使用Winforms来做这些,但是现在是时候更新GUI了,因为Winforms现在太丑了。

处理字体在WPF

TextBlock的Content属性(Text)期望Inline元素的集合(InlineUICollection),您有以下可用:

       Inline
          InlineUICollection
          LineBreak
          Run (defines Text property)
          Span (defines Inlines property)
            Bold
            Italic
            Underline

(Inlines是span的内容属性,它是一个InlineUICollection,这意味着你可以在span中添加Run和换行符以及其他span/Bold/斜体)

使用这个可以说"你好,谢谢你帮助我":

<TextBlock><Run Text="H" FontSize="20" Foreground="Red"/><Span>ello guys, <Underline>thank you</Underline> for helping me</Span></TextBlock>

"H"会变红变大,"thank you"会下划线。

这在编程上也都是可能的,例如,在textblock中运行"hello world":

        TextBlock t = new TextBlock();
        t.Inlines.Add(new Run{Text="Hello World"});