所以我有这个WPF应用程序从数据库中提取数据并在dataGrid中显示:
此应用程序存储rtf格式代码 [Content] 。我希望它转换 [Content] 下的每个商家信息,并将其显示在我的dataGrid内的richtextbox中。
我的XAML:
<DataGrid x:Name="dataGrid" ColumnWidth="*" HorizontalAlignment="Left" VerticalAlignment="Top" Height="512" Width="774" SelectionChanged="dataGrid_SelectionChanged" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Title}" ClipboardContentBinding="{x:Null}" Header="Ttile" Width="100" FontFamily="Segoe UI Semibold"/>
<DataGridTemplateColumn ClipboardContentBinding="{x:Null}" Header="Content" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<RichTextBox x:Name="rtb">
<FlowDocument Name="rtbFlowDoc" PageWidth="{Binding ElementName=rtb, Path=ActualWidth}">
<Paragraph>
<Run Text="{Binding Content}"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn ClipboardContentBinding="{x:Null}" Header="Image">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Files}" Width="300" Height="300" ScrollViewer.HorizontalScrollBarVisibility="Auto"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
用于将rtf转换为内容的我的C#(如何自动转换每个数据行btw?):
string rtfText = text;
byte[] byteArray = Encoding.ASCII.GetBytes(rtfText);
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArray))
{
System.Windows.Documents.TextRange tr = new System.Windows.Documents.TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
tr.Load(ms, System.Windows.DataFormats.Rtf);
}