UWP - GridView项目覆盖

时间:2016-01-18 11:42:22

标签: gridview overlay uwp

我的目标是创建填充了我的自定义控件的GridView。控制有两种状态 - 闭合(70px高)和开放(200px高)。它包含两个网格--70和130.默认情况下,上部网格始终可见,下部网格折叠,Canvas.ZIndex设置为2。

每次扩展控件时,它都不会叠加在GridView中的其他项目上 - 相反,控件会将它们降低。何解决这个问题?

1 个答案:

答案 0 :(得分:0)

要渲染覆盖在UI其余部分顶部的控件,您需要使用Popup。它可以完全自定义,但需要一些支持代码才能使其正常工作。

如果您要求不高,使用Flyout可能就足够了。它的定位,外观和行为受到更多限制,但也更易于使用:

<TextBlock Tapped="UIElement_OnTapped">Closed
    <FlyoutBase.AttachedFlyout>
        <Flyout Placement="Bottom">
            <TextBlock>Opened</TextBlock>
        </Flyout>
    </FlyoutBase.AttachedFlyout>
</TextBlock>

在事件处理程序中,您可以将其显示为:

private void UIElement_OnTapped(object sender, TappedRoutedEventArgs e)
{
    var uiSender = sender as UIElement;
    var flyout = (FlyoutBase) uiSender.GetValue(FlyoutBase.AttachedFlyoutProperty);
    flyout.ShowAt(uiSender as FrameworkElement);
}

有关详细信息,请查看this blog post,了解如何基于Popup创建自定义类似Fylout的控件。