【问题标题】:How to make LVI stretch to width of its container?如何使 LVI 拉伸到其容器的宽度?
【发布时间】:2014-01-20 23:28:13
【问题描述】:

我试图让我的 ListView 控件看起来非常漂亮,但我无法让 ListViewItem 伸展到 ListView 控件的整个宽度。

我在商店的许多应用程序中都看到了它。但我就是不明白:

我开始认为,可能看起来像是被拉伸的应用实际上并不是在使用 ListViews,而是在使用某种其他类型的 List。

如何使项目拉伸到其容器的宽度?

以下是我正在使用的:

            <ListView x:Name="list" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0, 37, 0, 0" ItemsSource="{Binding Note}" Width="376" HorizontalContentAlignment="Stretch" Background="Magenta" ScrollViewer.VerticalScrollBarVisibility="Disabled">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="376">
                            <TextBlock Text="{Binding Name, Mode=OneWay}" TextWrapping="Wrap" Padding="10, 0, 0, 0" HorizontalAlignment="Left" SelectionHighlightColor="#FF4617B4" />
                            <!--<TextBlock TextWrapping="Wrap" Text="Jan 20, 2013" FontSize="9" Foreground="#FF4E7189" HorizontalAlignment="Right" SelectionHighlightColor="#FF9BCAEC" />-->
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

【问题讨论】:

    标签: c# .net xaml windows-runtime windows-store-apps


    【解决方案1】:

    您有几个选择。无论出于何种原因,他们都在模板中设置了它,所以如果你查看default template,你会看到Margin="0,0,18,2"(还有多个对象上的其他奇怪的边距)所以如果你真的想修复它,您可以公开默认模板并直接修复它,或者直接复制自己的应用程序,或者快速尝试添加;

        <ListView.ItemContainerStyle>
                <Style TargetType="ListViewItem">
                    <Setter Property="Margin" Value="0" />
                </Style>
            </ListView.ItemContainerStyle>
    

    希望这会有所帮助。

    【讨论】:

    • 那里的18 用于right,所以我认为18 像素是垂直滚动条的剩余空间。非常感谢@Chris :)
    猜你喜欢
    • 2015-02-05
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2013-07-29
    • 1970-01-01
    相关资源
    最近更新 更多