出现VerticalScrollBar时调整边框大小

时间:2011-01-04 10:13:40

标签: c# wpf resize datatemplate border

让我向您展示我的XAML代码的一部分:

<ListBox Grid.Row="1"  ScrollViewer.HorizontalScrollBarVisibility="Disabled"
         ScrollViewer.IsDeferredScrollingEnabled="True"
         HorizontalAlignment="Stretch" ItemsSource="{Binding}"  Margin="1,1,0,0"
         Name="listBox_Faits"  Width="290"  VerticalAlignment="Stretch"
         SelectionChanged="listBox_Faits_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Border  BorderBrush="SlateGray" BorderThickness="0.5" Margin="1,2,1,1"
                     Width="{Binding ElementName=listBox_Faits, Path=Width}">

当创建太多边框(它与ObservableCollection链接)时,会出现一个垂直滚动条,并且我的边框不会自行调整大小。 (我希望看到完整的边界,我不希望它在最后被切割)

如果有人有想法,谢谢! 如果您需要更多信息,请随时询问!

RGDS,

弗洛

2 个答案:

答案 0 :(得分:3)

你可以通过添加它来使ListBoxItem拉伸,然后你可以删除边框的宽度绑定

<ListBox ...>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>
    <!-- ... -->

答案 1 :(得分:0)

问题是您正在设置边框的宽度。这意味着即使可见光小于列表项的大小,它也将是固定大小。如果未设置Border.Width,则会调整大小以适应滚动条。