C# 如何将列表视图项中的元素放在整个应用程序的前面?

C# 如何将列表视图项中的元素放在整个应用程序的前面?,c#,xaml,uwp,winui,C#,Xaml,Uwp,Winui,使用UWP XAML,我试图从Postman重新创建这个文本框UX,它会在应用程序中的所有其他元素之上弹出,以显示全文:。我几乎完全重新创建了这个用户体验,但是当文本框位于列表视图中时,我很难将它放到应用程序的“前端” 我尝试过的: 我尝试过为自定义文本框创建一个UserControl,并将Canvas作为其父对象。像这样: <Canvas> <TextBox/> </Canvas 我不认为你的问题是在这种情况下的z指数(每说)。ListView中的问题是每

使用UWP XAML,我试图从Postman重新创建这个文本框UX,它会在应用程序中的所有其他元素之上弹出,以显示全文:。我几乎完全重新创建了这个用户体验,但是当文本框位于列表视图中时,我很难将它放到应用程序的“前端”

我尝试过的:

我尝试过为自定义文本框创建一个UserControl,并将Canvas作为其父对象。像这样:

<Canvas>
  <TextBox/>
</Canvas


我不认为你的问题是在这种情况下的z指数(每说)。ListView中的问题是每个ListViewItem都有自己的边界,因此文本框被该项的边界框剪裁。您至少可以使用可视化树工具仔细检查边界区域,以确认这是问题所在

如果您不希望ListViewItem在大小上展开以匹配,我可以看到两个选项。当用户单击编辑时,您会将一个“假”文本框(绑定到ListView或数据项中的原始文本框)放在1)显示的弹出窗口中,或2)放在包含文本框的页面XAML的覆盖层中

您可以从原始文本框中获取选择状态和光标位置等,然后将焦点移动到新的文本框并镜像相同的状态


这是我想我会采取的方法

这看起来有点像,解释了它是如何凌驾于一切之上的。@CorentPane工具提示和弹出按钮不是理想的用户体验,因为它是原始文本框的单独元素,所以焦点从原始元素跳到工具提示/弹出按钮。不幸的是,这是一个笨拙的用户体验,基于我最初对flyout的实验。
如果您不希望ListViewItem的大小扩展到与之匹配的大小
。我最终选择了这种方法。谢谢