テキストが太字、下線、または斜体の場合に、richtextboxから情報を取得する方法を見つけようとしています。したがって、richtextboxから行を読み取る場合、一部の単語が太字になっているかどうかなどを知る必要がありますか?内容を.rtfに保存したくないので、別の単語に保存する必要があります。そのため、単語の前にタグを追加して.txtファイルのように内容を保存できるように、どの単語が何かにフォーマットされているかを知る必要があります。
はい、このようにすると動作します
private void Button_Click(object sender, RoutedEventArgs e)
{
foreach (Paragraph p in myRichTextBox.Document.Blocks)
{
foreach (var inline in p.Inlines)
{
if (inline.FontWeight == FontWeights.Bold)
{
// obtain text from p
}
}
}
}
太字のテキストを取得するにはどうすればよいですか?
WPFのRTBにはFlowDocumentが含まれています。したがって、ドキュメントのツリーを解析して、特定のテキストが含まれているインラインを検出できます。基本的な概念:
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<RichTextBox x:Name="myRichTextBox">
<RichTextBox.Document>
<FlowDocument>
<Paragraph>
<Bold>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</Bold>
</Paragraph>
<Paragraph>
<Italic>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</Italic>
</Paragraph>
<Paragraph>
<Underline>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</Underline>
</Paragraph>
</FlowDocument>
</RichTextBox.Document>
</RichTextBox>
<Button Grid.Row="1" Content="Parse" Click="Button_Click"/>
</Grid>
コードビハインド:
private void Button_Click(object sender, RoutedEventArgs e)
{
foreach (Paragraph p in myRichTextBox.Document.Blocks)
{
foreach (var inline in p.Inlines)
{
if (inline is Bold)
{
// ...
}
if (inline is Italic)
{
// ...
}
if (inline is Underline)
{
// ...
}
}
}
}
インラインはネストできることに注意してください。
<Underline>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<Bold>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<Italic>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</Italic>
</Bold>
</Underline>
コンテンツを解析するときは、これを考慮に入れる必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加