0

我正在创建一个简单的文件浏览器,它的显示将模仿 Windows(7)资源管理器“内容”显示模式的显示。我设想了一个 ListView 控件,它的 ItemsSource 将绑定到 FileSystemInfo 对象的集合。每个 ListViewItem 都将显示文件名、上次修改日期/时间等。但是,我还希望它们有一个 Expander,当用户单击它时,它将垂直展开以显示文件的内容。

下面是我使用 Expression Blend 创建的 XAML 代码。这是我希望 ListViewItem 成为的通用模板。但是,扩展器不会导致边框的垂直高度扩展以匹配扩展器的网格内容所需的额外空间(在此示例中,高度为 500 的 ScrollViewer - 显然每个文件可能具有不同的尺寸,具体取决于内容-- 图像、纯文本等)。

那么,我在这里做错了什么?此外,我想知道 ListView 控件是否会通过使其 Item 元素垂直扩展/收缩而正常运行。

这是我希望用于 ListItemView 的 ControlTemplate:

<Border BorderBrush="Black" BorderThickness="1" Background="Beige">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="0.5*"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.25*"/>
                <ColumnDefinition Width="0.50*"/>
                <ColumnDefinition Width="0.25*"/>
            </Grid.ColumnDefinitions>
            <Image Grid.RowSpan="2"/>
            <TextBlock Grid.Column="1" HorizontalAlignment="Left" TextWrapping="Wrap" Text="FileName" d:LayoutOverrides="Height" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="1" Grid.Row="1" TextWrapping="Wrap" Text="FileType" d:LayoutOverrides="Width, Height" VerticalAlignment="Center"/>
            <TextBlock Grid.Column="2" TextWrapping="Wrap" Text="DateTime Last Modified" VerticalAlignment="Center" d:LayoutOverrides="Width" Grid.RowSpan="2" HorizontalAlignment="Center"/>
            <Expander Header="Expander" d:LayoutOverrides="Width" Grid.ColumnSpan="3" Grid.Row="2">
                <Grid>
                    <ScrollViewer Content="File Contents" Height="500"/>
                </Grid>
            </Expander>
        </Grid>
    </Border>
4

0 回答 0