TelerikのRadRichTextBoxを使用しています。これにより、ほぼすべての種類のドキュメントをレンダリングできます。
Herzmeister、ご回答ありがとうございます。HTMLTextBlockのコードを確認した後、解決策を考え出すことができると提案しました。これが私が使用したコードです。
.xaml
<UserControl x:Class="RadControlsSample.RadRichTextBoxTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:telerikHtml="clr-namespace:Telerik.Windows.Documents.FormatProviders.Html;assembly=Telerik.Windows.Documents.FormatProviders.Html"
mc:Ignorable="d" d:DesignWidth="700" d:DesignHeight="400" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"
Loaded="Example_Loaded">
<Grid x:Name="LayoutRoot">
<telerik:RadRichTextBox Grid.Row="1" x:Name="richTextBox" DataContext="{Binding}" IsReadOnly="True" ShowMergeFieldsHighlight="False" IsSpellCheckingEnabled="False" />
</Grid>
</UserControl>
.cs
using System;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Resources;
using Telerik.Windows.Documents.FormatProviders.Html;
using Telerik.Windows.Documents.Model;
namespace RadControlsSample
{
public partial class RadRichTextBoxTest : UserControl
{
private const string SampleDocumentPath = "SampleData/SomeHtml.html";
public RadRichTextBoxTest()
{
InitializeComponent();
}
private void Example_Loaded(object sender, RoutedEventArgs e)
{
//Load html file from the content file
var fileUri = new Uri(SampleDocumentPath, UriKind.Relative);
StreamResourceInfo streamInfo = System.Windows.Application.GetResourceStream(fileUri);
var reader = new StreamReader(streamInfo.Stream);
this.richTextBox.Document = new HtmlFormatProvider().Import(reader.ReadToEnd());
this.richTextBox.Document.LayoutMode = DocumentLayoutMode.Flow;
}
}
}