【问题标题】:Resize my border when a VerticalScrollBar appear出现 VerticalScrollBar 时调整边框大小
【发布时间】:2011-06-03 07:27:31
【问题描述】:

让我向您展示我的部分 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,

弗洛

【问题讨论】:

    标签: c# wpf resize datatemplate border


    【解决方案1】:

    你可以通过添加这个让ListBoxItem拉伸,然后你可以移除Border的Width绑定

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

    【讨论】:

    • 你甚至解决了我遇到的一个老问题!!!非常非常非常非常感谢!问候,弗洛
    • @Flo:没问题 :) 那么二合一,太好了!
    【解决方案2】:

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

    【讨论】:

    • 嗯,当我不设置任何大小时,每个边框都有不同的大小:它取其中最长句子的大小。我不知道如何使边框完全适合列表框,而不考虑其内容的大小。我以为是Horizo​​ntalAlignement = "Stretch",结果不行。
    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 2015-10-05
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多