Xamarin 如何在longpress上显示弹出菜单?
如何在用户longpress上显示自定义弹出页面?每个选项都必须有一个新闻事件 我看到了一些关于这方面的话题,但它们没有帮助 这是我的代码:Xamarin 如何在longpress上显示弹出菜单?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,如何在用户longpress上显示自定义弹出页面?每个选项都必须有一个新闻事件 我看到了一些关于这方面的话题,但它们没有帮助 这是我的代码: for (int l = 1; l < ustkatmasasayisi; l++) { var buttonustkat = new Button { Text = l.ToString(), HeightRequest = 45, WidthRequest = 45,
for (int l = 1; l < ustkatmasasayisi; l++)
{
var buttonustkat = new Button
{
Text = l.ToString(),
HeightRequest = 45,
WidthRequest = 45,
Margin = 5,
CornerRadius = 100,
};
buttonustkat.Clicked += ustkatbuton;
ustkat.Children.Add(buttonustkat);
}
我必须将longpress事件设置为
按钮nustkat
您可以使用自定义渲染器
以形式
创建自定义按钮
using System;
using Xamarin.Forms;
namespace App13
{
public class MyButton:Button
{
public EventHandler LongPress { get; set; }
}
}
在iOS中
您可以使用自定义渲染器 以形式 创建自定义按钮
using System;
using Xamarin.Forms;
namespace App13
{
public class MyButton:Button
{
public EventHandler LongPress { get; set; }
}
}
在iOS中
你的代码样本似乎不正确,我做了编辑,看看它是否让老师做了,你的文本语法更正确。你的代码样本似乎不正确,我做了编辑,看看它是否让老师做了,你的文本语法更正确。给这个人一枚奖章!你在同一天解决了我的两个问题:)给这个人一枚奖牌!你在同一天解决了我的两个问题:)
using System;
using UIKit;
using App13;
using App13.iOS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;
[assembly: ExportRenderer(typeof(MyButton), typeof(MyButtonRenderer))]
namespace App13.iOS
{
public class MyButtonRenderer:ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if(Control!=null)
{
var longPress = new UILongPressGestureRecognizer(()=> {
var myButton = Element as MyButton;
myButton.LongPress?.Invoke(myButton, new EventArgs());
});
Control.AddGestureRecognizer(longPress);
}
}
}
}
using System;
using Android.Content;
using App13;
using App13.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
[assembly:ExportRenderer(typeof(MyButton),typeof(MyButtonRenderer))]
namespace App13.Droid
{
public class MyButtonRenderer : ButtonRenderer
{
public MyButtonRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Button> e)
{
base.OnElementChanged(e);
if(Control!=null)
{
Control.LongClick += Control_LongClick;
}
}
private void Control_LongClick(object sender, LongClickEventArgs e)
{
var mybutton = Element as MyButton;
mybutton.LongPress?.Invoke(mybutton,new EventArgs());
}
}
}
var buttonustkat = new MyButton
{
Text = l.ToString(),
HeightRequest = 45,
WidthRequest = 45,
Margin = 5,
CornerRadius = 100,
};
buttonustkat..LongPress += Button_LongPress;
private void Button_LongPress(object sender, EventArgs e)
{
}