uwp gridviewitem缩放动画部分重叠其他项目

时间:2018-03-01 12:13:17

标签: c# xaml animation uwp windows-community-toolkit

好的,所以当他们聚焦时,我试图在gridviewitems中创建一个弹出效果。以下是执行此操作的代码。

private async void Container_GotFocus(object sender, RoutedEventArgs e)
    {
    var panel = (sender as FrameworkElement)?.FindDescendant<DropShadowPanel>();
            if (panel != null)
            {
                var parent = panel?.Parent as UIElement;
                if (parent != null)
                {
                    Canvas.SetZIndex(parent, 10);
                    var parentAnimation = new ScaleAnimation() { To = "1.2", Duration = TimeSpan.FromMilliseconds(600) };
                    parentAnimation.StartAnimation(parent);
                    var parentAnimation2 = new ScaleAnimation() { To = "1.2", Duration = TimeSpan.FromMilliseconds(600) };
                    parentAnimation2.StartAnimation(panel);
                }
            }
     }

如您所见,我正在使用 Uwp社区工具包来扩展项目。并且我在失去焦点事件时将它们缩放到1,并且这两个都正常工作。我试图阻止1侧重叠与焦点项目的设置 Z索引

问题

  

正如你在下面的图片中看到的那样,聚焦项目的左侧是完美的并且位于左侧元素的上方,但是在右侧,它看起来很奇怪,因为它的右边缘位于右侧的项目下方,是我的主要关注点,因为它应该看起来像左边缘并且高于所有其他项目。

enter image description here

  

我认为这里不需要这种情况下的数据模板所以我会把它留下来。我只需要以某种方式管理缩放项目的zindex,以便在缩放时它可以在其他所有人之上。

修改 我的问题不是任何其他问题的重复,因为我试图设置zindex,但它在我的情况下不起作用。

更新1

好,所以现在我正在尝试扩展容器,但现在我将面板设为null。

 var panel = (sender as FrameworkElement)?.Parent as UIElement;
            if (panel != null)
            {
                //var parent = ((panel?.Parent as FrameworkElement)?.Parent) as UIElement;
                //if (parent != null)
               // {
                    Canvas.SetZIndex(panel, 1);
                    //var parentAnimation = new ScaleAnimation() { To = "1.2", Duration = TimeSpan.FromMilliseconds(600) };
                    //parentAnimation.StartAnimation(parent);
                    var parentAnimation2 = new ScaleAnimation() { To = "1.2", Duration = TimeSpan.FromMilliseconds(600) };
                    parentAnimation2.StartAnimation(panel);
               // }
            }

0 个答案:

没有答案