65.9K
CodeProject 正在变化。 阅读更多。
Home

UWP 的可折叠内容控件

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2017年1月8日

CPOL

1分钟阅读

viewsIcon

7285

这是一个适用于 UWP 平台的折叠内容控件。

引言

这是一个内容控件,你可以通过点击其标题来折叠和展开它。

背景

我最近完成的一个项目是为企业应用编写设计。就像大多数企业应用一样,这个应用有一个需要折叠和展开的列表。但不幸的是,UWP 中没有现成的控件(就像 WPF 中那样)。所以我不得不从头开始创建一个。考虑到时间限制,我决定使用用户控件。猜猜怎么着,最终的结果还不错。所以我决定与社区分享它。

Using the Code

你可以将此控件与任何类型的框架元素一起使用。它不仅仅局限于列表。你只需要将要显示的内容分配给 ‘FoldableContent’ 属性即可,如下所示:

<controls:FoldableContentControl.FoldableContent>
    <ListView ItemsSource="{x:Bind MyItemList}">
        <ListView.ItemTemplate>
            <DataTemplate>
               <StackPanel BorderBrush="LightGray"
                        BorderThickness="0.5">
                    <TextBlock Text="{Binding}"
                           HorizontalAlignment="Center"
                           Padding="10"/>
               </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                <Setter  Property="Padding" Value="0"/>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>
</controls:FoldableContentControl.FoldableContent>

你可以通过更改 ‘HeaderText’ 属性来指定标题中的内容。

你可以指定在内容中没有项目时要显示的内容。只需将框架元素添加到 ‘EmptyContent’ 属性或更改 ‘EmptyText’ 属性即可。要显示此空状态,必须将 ‘DisplayEmpty’ 属性设置为 true(如果是一个 ItemsControl,只需将 ‘Count’ 属性与值转换器绑定即可)。

关注点

你可以在我的 GitHub 仓库中找到源代码。

© . All rights reserved.