如何制作手风琴式的内容持有者UWP

时间:2017-04-28 09:12:01

标签: c# visual-studio xaml uwp accordion

所以我想为一个uwp应用程序制作一个手风琴内容持有者。我在文档中找不到任何类似于我想要的东西。这是不是我需要使用stackpanels和codebehiend等从头开始构建,还是我可以在libary中使用的工具,我还没找到?

这是我想要的一个例子。当用户点击疫苗名称时,包含该疫苗信息的内容框将下拉。如果在展开时单击,它将向上滑动并仅再次显示名称。手风琴。 enter image description here

任何有关此主题的建议,教程和文章都将不胜感激。提前谢谢。

2 个答案:

答案 0 :(得分:2)

可用的UWP Community Toolkit具有您可以使用的扩展器控件。您可以从Windows应用商店获取代码示例,源代码在github上。

https://blogs.windows.com/buildingapps/2016/08/17/introducing-the-uwp-community-toolkit/#v6cSIzET7QwQOb8O.97

enter image description here

答案 1 :(得分:0)

我相信您知道如何使用ListView制作DataTemplate。如果没有为此搜索文档。

所以我认为问题中最重要的部分是扩展。

首先在DataTemplate中将高度绑定到DataModel,例如:

<Grid Height="{x:Bind Item.Height, Mode = OneWay}">...</Grid>

然后在该箭头上放置Clicked(或Tapped,如果它的控件不支持Clicked)事件,并在这样的代码中处理它(Tapped可能需要不同的参数,但它们会自动出现):

Arrow_Clicked(object sender, RoutedEventArgs e)
{
    var item = (sender as Button).DataSource as Item;
    if (item.Height == 80)
        item.Height = 200;
    else
        item.Height = 80;
}