【发布时间】:2018-03-12 11:26:06
【问题描述】:
下面的代码和屏幕截图显示了我在下面遇到的问题。
我需要有一个宽度设置为自动的列表框,因为内容大小是可变的。但是,进入列表框的项目数量也会发生变化,因此有时需要一个 ScrollBar。问题是,根据下图,自动宽度似乎不能很好地与滚动条配合使用。我可以添加边距,但在不需要滚动条时我不希望有间隙。
我注意到只有当文本框有一个长字符串时才会出现问题,如果输入了一个短字符串/没有输入,那么滚动条会正确显示。
除了检测是否需要滚动条并动态添加边距之外,还有其他方法吗?我觉得应该有一种方法可以在我的 XAML 中实现这一点,同时仍将列表框列保持为 Width=Auto。
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 200; i++)
{
lbxDocs.Items.Add("TESTSTRING"+i);
}
txtImagePath.Text =
@"uPPvU18ijL9Tz6fqvwLsymkdxuS8h8jS9afzQ8i7LLXvrb2JO2hmPImVF5Dq5PZpdOkw2sTX9j6GeGL7IsaDuaf1ltY0MdzCRHGTZlUVkMa43meW3gavXAWMHyLPiyfGlHxuXcQOoH8ldxkYuxhVRcSJY3ZyCzlCsPjWuINTQyJCAU5hiDqroXWI8"+
"uPPvU18ijL9Tz6fqvwLsymkdxuS8h8jS9afzQ8i7LLXvrb2JO2hmPImVF5Dq5PZpdOkw2sTX9j6GeGL7IsaDuaf1ltY0MdzCRHGTZlUVkMa43meW3gavXAWMHyLPiyfGlHxuXcQOoH8ldxkYuxhVRcSJY3ZyCzlCsPjWuINTQyJCAU5hiDqroXWI8";
}
<Window x:Class="Grid_ScrollBar.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Grid_ScrollBar"
mc:Ignorable="d" Loaded="MainWindow_OnLoaded"
TextOptions.TextRenderingMode="ClearType" WindowStartupLocation="CenterScreen"
TextOptions.TextFormattingMode="Display" Height="400" Width="500">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox Name="txtImagePath"/>
<ListBox Name="lbxDocs" Grid.Column="1" Grid.Row="1"/>
</Grid>
</Window>
滚动条被切断;
一旦我们点击ListBox 中较长的字符串项,宽度就会增加以显示滚动条的其余部分;
【问题讨论】:
-
避免这种情况的一种方法是将滚动条设置为始终可见。在您的情况下这是一个选择,还是您想在不需要时隐藏它?
-
@ManfredRadlwimmer 感谢您的回复,不幸的是,如果不需要,我需要隐藏它。
-
能否请您发布您的整个窗口 xaml?我觉得你的窗口宽度变小了,增加 50 或 100 就可以了,因为我看到你的窗口边框也被切断了。
-
我不知道为什么,但是当我将您的第一个 RowDefinition 的“高度”属性从自动更改为固定值时,它会按预期工作......也许这是你的一个选择
-
@TobiasHoefer 这很奇怪......
标签: wpf