0

好的,所以我试图在 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 索引重叠。

问题

正如您在下图中看到的,焦点项目的左侧是完美的并且在左侧元素上方,但在右侧,它看起来很奇怪,因为它的右边缘低于右侧的项目,这是我的主要担心,因为它应该看起来像左边缘并且高于所有其他项目。

在此处输入图像描述

我认为这里不需要这种情况下的数据模板,因此我将其省略。我只需要以某种方式管理缩放项目的 zindex,以便在缩放时它可以高于其他所有人。

编辑 我的问题与任何其他问题都不重复,因为我正在尝试设置 zindex,但它不适用于我的情况。

更新 1

好的,所以现在我正在尝试缩放容器,但现在我将面板设置为空。

 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);
               // }
            }
4

0 回答 0