我需要创建一个控件,它将在初始屏幕上显示文本进度(例如,将显示加载的各种模块和启动状态)。我希望控件仅显示最后 3 或 4 行,以便新文本以流畅的动画方式将先前的文本向上推。
我应该为此控件或其他控件使用 TextBox 控件吗?如果有人能够指出我正确的方向,那就太好了。
我需要创建一个控件,它将在初始屏幕上显示文本进度(例如,将显示加载的各种模块和启动状态)。我希望控件仅显示最后 3 或 4 行,以便新文本以流畅的动画方式将先前的文本向上推。
我应该为此控件或其他控件使用 TextBox 控件吗?如果有人能够指出我正确的方向,那就太好了。
只是一个想法,但你说你想让它在添加另一行时一次滚动一行。怎么用ScrollViewer.LineUp
?我知道这非常粗糙,但作为一个想法......
private void ScrollBox()
{
foreach (string line in lines)
{
scrollbox.LineUp();
textbox.Text += "/r/n Next Line";
}
}
你可以很容易地实现这个效果ListBox
,你的文本是ListBoxItem
s 和一个自定义动画Panel
。简而言之,Panel
将Transform
对象添加到每个项目的RenderTransform
属性中,这使您可以动画项目移动到它们的位置。
请参阅这篇非常好的文章以了解如何创建动画Panel
......当然,您必须编写自定义代码以按照您想要的方式排列项目。一旦你有了你的 custom Panel
,你就可以在 a 中使用它ListBox
(假设你已经包含了对你所在的命名空间的引用Panel
),如下所示:
<ListBox HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<YourXmlns:YourAnimatedStackPanelPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>