2011-05-28 76 views
0

我想在wpf中创建某种形式的更新区域。它需要启动,因为它将连接到不断需要显示的实时文本流。wpf更新文本块

的想法是,我将有一个数据流,这将包括用户名和文本的,这会在一个随机时间,需要显示:

用户:测试::测试:的TextData

用户:NextTest ::测试:TESTDATA

等上一个新行的每个项目,所以对象需要启动确定年代在一个滚动的格式,以便在新项目将被添加到了谷底。

目前我使用:

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
    <StackPanel> 
     <TextBox Margin="5" TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True" x:Name="LogDetails"></TextBox> 
    </StackPanel> 
</ScrollViewer> 

但是这并不能真正显示的数据非常好,该数据是基于刚刚串,没有人知道一个更好的解决方案?

感谢

+0

你想让texbox显示一个连续变化的字符串吗?你试图绑定数据吗? – 2011-05-28 09:03:39

+0

我没有得到正确的问题。你能否详细说明你想让显示器看起来像? – 2011-05-28 09:26:26

+0

我已经更新了这个问题,我希望详细说明我正在努力实现的目标。 – user101010101 2011-05-28 10:07:52

回答

1

的问题是有点含糊,但在这里一试:
作为一种选择,为什么不使用TextBlock代替文本框,如果文本自动改变?
警告:如果您想使用文本框,请不要忘记将UndoLimit设置为0。否则,如果连续更改TextBox内容,将会消耗大量内存。

<TextBox UndoLimit="0" .../> 

如果文字多个字符串元素的concattenation,创建布局具一格,更精美的使用多的TextBlocks所显示的数据?也许还有一些数据可以视为符号?

如果它是一个日志,也许你想用字符串填充一个列表并将该列表设置为ItemsControl的ItemsSource?通过ItemTemplate属性,你可以指定每个项目的布局?使用ObservableCollection<string>,那么你只需要将字符串添加到集合中,ItemsControl就会自动刷新。您可以使用ItemsControl,ListBox,ListView作为这样的日志。