【发布时间】:2020-11-23 17:30:56
【问题描述】:
有人可以帮忙解决以下问题吗?
我在 Visual Studio 中有一个 Xamarin Android 项目。我有一个 Picker 控件,我想为它制作一个自定义渲染器以使文本居中。
我在解决方案 OGLMobile 和 OGLMobile.Android 中有两个项目。
在 MainActivity.cs 的 OGLMobile.Android 项目中,我有以下代码(所有编译都很好):
[assembly: ExportRenderer(typeof(OGLMobile.Droid.MyPicker), typeof(OGLMobile.Droid.BetterPickerRenderer))]
.
.
.
public class MyPicker : Picker
{
public MyPicker() : base()
{
}
}
public class BetterPickerRenderer : PickerRenderer
{
public BetterPickerRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.Gravity = Android.Views.GravityFlags.CenterHorizontal;
}
}
}
我的问题是,如何在 OGLMobile 项目中使用它,我想在 MainPage.xaml.cs 中的 C# 中动态创建这样的控件?
所以我现在有:
private Picker m_picker = null;
我想要:
private MyPicker m_picker = null;
目前在此解决方案中找不到类型 MyPicker。
感谢您的帮助, 米奇。
【问题讨论】:
-
MyPicker需要在共享表单项目中定义,并且渲染器需要在平台项目中