好的,所以当他们聚焦时,我试图在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
好,所以现在我正在尝试扩展容器,但现在我将面板设为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);
// }
}