我使用Winforms ListBox作为一个小事件列表,并希望填充它以便最后一个事件(底部)可见.该SelectionMode设置为none.用户可以滚动列表,但我希望它开始滚动到最后.
看着缺少的东西像支持ScrollIntoView,EnsureVisible,我假设我将需要创建一个从Control继承的自定义控制; 但是我不知道该怎么做.
一些指针?
我有一个WPF ListBox设置为水平滚动.ItemsSource绑定到我的ViewModel类中的ObservableCollection.每次添加新项目时,我都希望ListBox向右滚动,以便新项目可见.
ListBox在DataTemplate中定义,因此我无法在代码隐藏文件中按名称访问ListBox.
如何让ListBox始终滚动以显示最新添加的项目?
我想知道ListBox何时添加了一个新项目,但是我没有看到这样做的事件.
我需要从代码隐藏访问列表视图的滚动查看器。这是我的列表视图的定义
<ListView Grid.Row="1" ItemsSource="{Binding Path=SpecList, UpdateSourceTrigger=PropertyChanged}"
Name="mylistview"
ItemTemplate="{StaticResource SpecElementTemplate}"
Background="{StaticResource EnvLayout}"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ItemContainerStyle="{StaticResource MyStyle}"
BorderBrush="Blue"
BorderThickness="20"
Margin="-2">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得滚动查看器?
谢谢
安德烈亚
我的应用程序具有数据绑定只读TextBox功能,作为捕获和显示其“记录的”活动的手段。每次要记录某些内容时,都会将其连接到绑定字符串。这对于有限数量的记录文本来说足够有效,但随着文本数量的增加,它(可以理解)会陷入困境。我在之前的问题中看到了建议:Efficient live log-viewer in WPF和What is a fast way to render a log view in WPF? 使用ListBox. 我可以做到这一点,但我会失去一个很好的功能 - 允许用户选择和复制任意文本块。还有其他解决办法吗?
c# ×3
wpf ×3
listbox ×2
code-behind ×1
listview ×1
logging ×1
scroll ×1
scrollviewer ×1
winforms ×1