如何在iOS Xamarin表单中获取按钮的按钮坐标

vc6uscn9  于 2023-01-18  发布在  iOS
关注(0)|答案(1)|浏览(171)

我已经创建了下面的渲染,以获得坐标。
我得到了X坐标值,但Y坐标值始终为0。

public class ContextMenuButtonRenderer : ButtonRenderer
{
   protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
   {
      base.OnElementChanged(e);
       if (Element is ContextMenuButton contextButton)
       {
          contextButton.GetCoordinates = GetCoordinatesNative;
       }
   }

   private (int x, int y) GetCoordinatesNative()
   {
     return ((int)Frame.Left, (int)Frame.Top);
   }
}

如何获得Y坐标值?

eagi6jfj

eagi6jfj1#

Xamarin.Froms.AbsoluteLayout中有一个比较简单的方法,可以指定位置和下级,在添加按钮时可以确定按钮的坐标位置,如下:

<StackLayout >        
    <Label Text="Welcome to Xamarin.Forms!" HorizontalTextAlignment="Center" />      
                
  <AbsoluteLayout>            
    <Button Text="111"  AbsoluteLayout.LayoutBounds="80,100,50,20"/>           
    <Button Text="222" AbsoluteLayout.LayoutBounds="180,100,50,20"/>        
  </AbsoluteLayout>    
</StackLayout>

有关详细信息,请参阅文档:Xamarin.Forms AbsoluteLayout

更新:Xamarin中的Touch Effects,Forms可以获取触摸坐标,我测试了官方样例可以正常获取,可以参考样例iOS部分TouchRecognizer类中的FireEvent事件TouchTrackingEffect Code,将触摸位置转换为点值,关于Touch Effects的更多细节,可以查看官方文档:Invoking Events from Effects

相关问题