我的程序会跟踪文本框中的字符数和行数。我正在尝试创建一个状态栏,向用户显示此信息。问题是当状态栏更新时,它不会替换旧信息,而只是将其添加到行中。
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);
}
答案 0 :(得分:1)
您正在向TextBlock
添加新StatusBar
而不清除其内容。在添加新项目之前尝试清除项目:
Status.Items.Clear();
Status.Items.Add(statusText);
然而,更好的解决方案是重复使用相同的TextBlock
,而不是添加和清除它:
// xaml:
<StatusBar>
<StatusBarItem>
<TextBlock Name="status" />
</StatusBarItem>
</StatusBar>
// code behind:
status.Text = "...";