与RichTextBox的字符串比较不匹配

时间:2017-07-24 21:00:48

标签: c# wpf visual-studio xaml

我在String写了一条消息“Hello,world。”RichTextBox

如果我然后将RichTextBox TextRange复制到新的String并进行字符串比较,则它们将不相等,即使它们都具有相同的文本。

我正在将字符串messageMessageRichTextBox()进行比较。

发生了什么事?必须从RichTextBox复制或排除一些额外数据。

RTB String Comparison

XAML

<RichTextBox x:Name="rtbMessage" Margin="10,10,10,50" />

<Button x:Name="btnCompare" Content="Compare" Margin="231,264,211,29" Width="75" Click="btnCompare_Click"/>

C#

String message = "Hello, world.";
Paragraph p = new Paragraph();


// Startup
// Write Message to RichTextBox
//
public MainWindow()
{
    InitializeComponent();

    rtbMessage.Document = new FlowDocument(p);

    rtbMessage.BeginChange();
        p.Inlines.Add(new Run(message));
    rtbMessage.EndChange();
}


// Copy RichTextBox to String
//
public String MessageRichTextBox()
{
    FlowDocument fd = new FlowDocument(p);
    rtbMessage.Document = fd;

    TextRange textRange = new TextRange(
        rtbMessage.Document.ContentStart,
        rtbMessage.Document.ContentEnd
    );

    return textRange.Text;
}


// Compare Strings Button
//
private void buttonCompare_Click(object sender, RoutedEventArgs e)
{
    if (message == MessageRichTextBox())
    {
        MessageBox.Show("Strings Match");
    }
    else 
    {
        MessageBox.Show("Does Not Match");
    }
}

结果

String message =“Hello,world。”
String MessageRichTextBox()=“Hello,world。”
不匹配

1 个答案:

答案 0 :(得分:2)

if (message.Equals(MessageRichTextBox()))
    MessageBox.Show("Strings Match");
else 
    MessageBox.Show("Does Not Match");