gpt4 book ai didi

c# - WPF C# - 从 TextBlock 获取内联格式的粗体文本

转载 作者:太空狗 更新时间:2023-10-30 01:32:30 26 4
gpt4 key购买 nike

我正在向 StackPanel 中的 Border 元素添加一些 TextBlock 元素。我通过添加 Inlines 添加并格式化 TextBlock 的文本。

单击时,我想获取 TextBlock 的格式化文本。这是我的代码。

public void addText()
{
TextBlock myText = new TextBlock();
myText.Inlines.Add(new Bold(new Run("Hello ")));
myText.Inlines.Add("World!");

Border myBorder = new Border();
myBorder.Child = myText;
myBorder.MouseDown += new MouseButtonEventHandler(Border_Clicked);

myStackPanel.Children.Add(myBorder);
}

private void Border_Clicked(object sender, MouseButtonEventArgs e)
{
//Border senderBox = (Border)sender;
//TextBlock senderText = (TextBlock)senderBox.Child;
//Bold inline = (Bold) senderText.Inlines.ElementAt(0);
// How to Output "Hello "?
}

Border_Clicked 应该输出“Hello”。如您所见,我可以访问粗体文本,但如何输出它?

最佳答案

@Helen,有一种方法可以使用 TextRange 从 TextPointer 获取文本。试试这段代码

void myBorder_MouseDown(object sender, MouseButtonEventArgs e)
{
var senderBox = (Border)sender;
var senderText = (TextBlock)senderBox.Child;
var inline = (Bold)senderText.Inlines.ElementAt(0);

var textRange = new TextRange(inline.ContentStart, inline.ContentEnd);
Console.WriteLine(textRange.Text);
}

关于c# - WPF C# - 从 TextBlock 获取内联格式的粗体文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com