gpt4 book ai didi

c# - 是否有类似 Visual Studio 调试输出的 WPF 输出监视器控件

转载 作者:太空狗 更新时间:2023-10-29 23:40:06 41 4
gpt4 key购买 nike

我正在尝试向我的 WPF 应用程序添加一个输出监视器。类似于 visual studio 中的调试输出的只读监视器。

是否有一个 WPF 控件已经提供了我需要的功能?或者有什么方法可以重用 Visual Studio 中的控件?

目前我正在使用由 StringBuilder 支持的标准 TextBox。更新转到 StringBuilder,而 TextBox 每 200 毫秒获取最新的字符串。

我的问题是,随着输出字符串变长,这会变得非常慢。

最佳答案

我会使用 RichTextBox 控件来输出数据。

在这个示例中,我完全没有遇到性能问题。

public partial class MainWindow : Window
{
private int counter = 0;
public MainWindow()
{
InitializeComponent();
Loaded+=OnLoaded;
}

private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
{

for (int i = 0; i < 200; i++)
{
AddLine(counter++ + ": Initial data");
}

var timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 200);
timer.Tick += TimerOnTick;
timer.IsEnabled = true;
}

private void TimerOnTick(object sender, EventArgs eventArgs)
{
AddLine(counter++ + ": Random text");
}

public void AddLine(string text)
{
outputBox.AppendText(text);
outputBox.AppendText("\u2028"); // Linebreak, not paragraph break
outputBox.ScrollToEnd();
}
}

和 XAML

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RichTextBox x:Name="outputBox"
VerticalScrollBarVisibility="Visible"
HorizontalScrollBarVisibility="Visible"
IsReadOnly="True">
<FlowDocument/>
</RichTextBox>

</Grid>
</Window>

而且扩展它可能很容易。如果滚动位置不在末尾,则不要滚动到末尾,例如,这样您可以在文本框仍在更新的同时查看旧数据。

关于c# - 是否有类似 Visual Studio 调试输出的 WPF 输出监视器控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13933958/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com