C# 在Xamarin.Forms中没有交互的覆盖层

C# 在Xamarin.Forms中没有交互的覆盖层,c#,xaml,xamarin.forms,overlay,interaction,C#,Xaml,Xamarin.forms,Overlay,Interaction,最近,Xamarin.Forms更改了Clear和Default背景控件的行为。本PR中描述了这些更改: 在我的两个应用程序中,这一变化是一个突破性的变化。UWP和WPF中默认的XAML行为是当Background清除(x:Null)时,可视对象是点击通过的,但是如果它有一些子对象,您仍然可以与它们交互。这一点非常重要,尤其是对于经常需要地图控件然后在上面布局一些控件的地图应用程序。如果我将图层设置为InputTransparent用户无法以任何方式与图层中的任何控件交互,如果我没有设置,则我无

最近,Xamarin.Forms更改了
Clear
Default
背景控件的行为。本PR中描述了这些更改:

在我的两个应用程序中,这一变化是一个突破性的变化。UWP和WPF中默认的XAML行为是当
Background
清除(
x:Null
)时,可视对象是点击通过的,但是如果它有一些子对象,您仍然可以与它们交互。这一点非常重要,尤其是对于经常需要地图控件然后在上面布局一些控件的地图应用程序。如果我将图层设置为
InputTransparent
用户无法以任何方式与图层中的任何控件交互,如果我没有设置,则我无法与地图本身交互

问题是我看不到任何简单的解决方法,因为我无法在没有布局父控件的情况下布局控件。如果我想把它们放在一个格子里,我需要在它们上面放一个格子。这会阻碍地图。与任何其他布局相同

我想实现以下目标:

<CustomMapControl />
<Grid x:Name="ControlsGrid">
   <Grid.RowDefinitions>
      <RowDefinition Height="*" />
      <RowDefinition Height="*" />
   </Grid.RowDefinitions>
   <Button Grid.Row="1" Text="Zoom in" />
</Grid>
<AboluteLayout x:Name="PlaceMenuContainer" />

)。还请注意,我可以在地图上方有多个层,如
PlaceMenuContainer
,它是一个容器,用于在用户点击地图上的某个位置时在地图上方显示上下文菜单项。这意味着我无法轻松地为所有控件使用单个布局容器


你觉得有什么办法可以解决这个问题吗?

你试过类似的方法吗

<Grid>
   <Grid.RowDefinitions>
      <RowDefinition />
      <RowDefinition />
   </Grid.RowDefinitions>
   <CustomMapControl Grid.RowSpan="2"/>
   <Button Grid.Row="1" Text="Click me" />
</Grid>


我从微软Xamarin团队的E.Z.Hart那里得到确认,目前正在研究这个问题,并且有几个开发人员遇到了这个问题。要么新方法的解决方案即将实施,任何更新都将发布在相关的:-)上。

不幸的是,这对我来说不是一个可行的解决方案。在真正的应用程序中,我在上面有几个层,我不能对所有控件使用一个布局。具体地说,我有一层“上下文菜单”,它位于地图上方,当用户点击地图上的不同位置时创建。因此,我需要一个
绝对布局
,而对于一些控件,我需要
网格
(例如缩放按钮)。我想我也有类似的问题。您需要将网格水平选项和垂直选项设置为不展开(例如,开始、结束、中心)。这适用于缩放按钮,但不适用于我需要上下文菜单覆盖层的情况-(…您需要与覆盖层和下面的层进行交互?是的,就是这样。我需要能够移动地图并拖动覆盖菜单。嗨,Martin。我想您会有更多答案(特别是来自Xamarin团队)如果你创建一个简单的复制项目,展示你想要实现的目标。我个人不确定我是否理解你想要做什么,举个例子会有所帮助。你可以在使用当前Xamarin.Forms版本的地方进行一次提交,然后在更新Xamarin.Forms版本的地方进行一次提交?是的,我将尝试提供一个示例repo