DataReader转换为WPF TextBox与RichTextBox

时间:2018-07-11 17:42:40

标签: c# wpf

当我将TextBox.Text属性设置为等于DataReader.GetString(x)时,我的数据将正确显示。

while (dr.Read())
{
    string data = dr.GetString(2);
    contentTextBox.Text = data;
}

但是,我试图使用RichTextBox而不是TextBox来利用RichTextBox.Find方法,但是当我这样做时,它会在每个字符后用新行填充RichTextBox

while (dr.Read())
{
    string data = dr.GetString(2);
    contentRichTextBox.AppendText(data);
}

如何将字符串数据以正确的格式放入RichTextBox中(即,与将其读取到TextBox.Text中的方式相同)?

谢谢!

1 个答案:

答案 0 :(得分:1)

@jdweng建议RichTextBox不够宽。由于其宽度设置为“自动”,因此这绝对是问题之一。即使常规TextBox的Width =“ Auto”根据其内容自动调整大小,RichTextBox也不会采用这种方式调整大小。

更新:通过添加带有“ DocumentWidth”的FlowDocument标签并将其“ PageWidth”绑定到RichTextBox,可以使RichTextBox根据内容/窗口的大小进行调整:

<RichTextBox Name="contentTextBox" Height="Auto" Width="Auto">
    <FlowDocument PageWidth="{Binding ElementName=contentTextBox, Path=ActualWidth}" />
</RichTextBox>