Изменить размер моей границы, когда появится VerticalScrollBar - PullRequest
6 голосов
/ 04 января 2011

Позвольте мне показать вам часть моего кода 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,

Flo

Ответы [ 2 ]

3 голосов
/ 04 января 2011

Вы можете сделать ListBoxItem растягиванием, добавив это, и затем вы можете удалить привязку Width для Border

<ListBox ...>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>
    <!-- ... -->
0 голосов
/ 04 января 2011

Проблема в том, что вы устанавливаете ширину границы.Это означает, что это будет фиксированный размер, даже если видимый размер меньше размера элемента списка.Если вы не установите Border.Width, он изменит свой размер в соответствии с полосой прокрутки.

...