3

我需要创建一个控件,它将在初始屏幕上显示文本进度(例如,将显示加载的各种模块和启动状态)。我希望控件仅显示最后 3 或 4 行,以便新文本以流畅的动画方式将先前的文本向上推。

我应该为此控件或其他控件使用 TextBox 控件吗?如果有人能够指出我正确的方向,那就太好了。

4

2 回答 2

0

只是一个想法,但你说你想让它在添加另一行时一次滚动一行。怎么用ScrollViewer.LineUp?我知道这非常粗糙,但作为一个想法......

private void ScrollBox()
{
    foreach (string line in lines)
    {
        scrollbox.LineUp();
        textbox.Text += "/r/n Next Line";
    }
}
于 2012-03-24T14:16:18.700 回答
0

你可以很容易地实现这个效果ListBox,你的文本是ListBoxItems 和一个自定义动画Panel。简而言之,PanelTransform对象添加到每个项目的RenderTransform属性中,这使您可以动画项目移动到它们的位置。

请参阅这篇非常好的文章以了解如何创建动画Panel......当然,您必须编写自定义代码以按照您想要的方式排列项目。一旦你有了你的 custom Panel,你就可以在 a 中使用它ListBox(假设你已经包含了对你所在的命名空间的引用Panel),如下所示:

<ListBox HorizontalContentAlignment="Stretch" 
    ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <YourXmlns:YourAnimatedStackPanelPanel />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>
于 2012-02-06T23:54:12.020 回答