ListBox似乎总是裁剪最后一项 例如,使用箭头向上或向下移动或滚动条。
如果向下移动,是否可以裁剪第一个项目 如果向上移动,裁剪最后一项?
一次只应该是一个问题所以这是可选的
如果鼠标点击最后一项,则裁剪顶部?
鼠标点击任何其他位置然后裁剪底部。
ScrollViewer.CanContentScroll =“False”修复了很多 现在点击项目就像我想要的那样 项目向上箭头表现得像我想要的那样 但滚动条移动会在顶部底部进行裁剪。
<Window x:Class="ListBoxLastIntoView.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>
<ListBox x:Name="lb" Width="420" HorizontalAlignment="Left"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Width="390" BorderBrush="Purple" Padding="2" Margin="2" BorderThickness="2">
<TextBlock TextWrapping="Wrap" Width="380" TextTrimming="CharacterEllipsis" Text="{Binding Mode=OneWay}"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Window>
namespace ListBoxLastIntoView
{
public partial class MainWindow : Window
{
private string lorum = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
private List<string> lorums = new List<string>();
public MainWindow()
{
for (int i = 1; i < 100; i++) lorums.Add(i.ToString() + " " + lorum);
InitializeComponent();
lb.ItemsSource = lorums;
}
}
}
答案 0 :(得分:1)
如果要删除ListBox
末尾的空格,可以使用以下结构:
<ListBox x:Name="lb"
ScrollViewer.CanContentScroll="False" ... />