如何更新状态栏?

时间:2017-10-04 16:31:56

标签: c# wpf textbox

我的程序会跟踪文本框中的字符数和行数。我正在尝试创建一个状态栏,向用户显示此信息。问题是当状态栏更新时,它不会替换旧信息,而只是将其添加到行中。

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    int numChars = TextBox.Text.Length;
    int numLines = TextBox.LineCount;
    TextBlock statusText = new TextBlock();

    statusText.Text = "Line " + (numLines) + ", Char " + (numChars);
    Status.Items.Add(statusText);
}

1 个答案:

答案 0 :(得分:1)

您正在向TextBlock添加新StatusBar而不清除其内容。在添加新项目之前尝试清除项目:

Status.Items.Clear();
Status.Items.Add(statusText);

然而,更好的解决方案是重复使用相同的TextBlock,而不是添加和清除它:

// xaml:
<StatusBar>
    <StatusBarItem>
        <TextBlock Name="status" />
    </StatusBarItem>
</StatusBar>

// code behind:
status.Text = "...";