繁体   English   中英

Xamarin.Forms for WinPhone无法识别自定义选择器渲染器绘制事件

[英]Custom picker renderer draw event not recognized in Xamarin.Forms for WinPhone

我正在尝试自定义Xamarin.Forms选择器控件。 在android和ios中,我将重写Draw事件并自己绘制控件。 但是,在WinPhone 8.1项目上,我无法覆盖Draw事件,因为它未被识别。 以下是我在android和ios中使用的代码以及WinPhone项目的屏幕截图,其中显示draw事件不存在。

安卓系统

using Android.Graphics;
using Namespace.CustomControls;
using Namespace.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

[assembly: ExportRendererAttribute(typeof(BindablePicker), typeof(BindablePickerRenderer))]
namespace Namespace.Droid.Renderers
{
    public class BindablePickerRenderer : PickerRenderer
    {
        public BindablePickerRenderer()
        {
            this.SetWillNotDraw(false);
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);
            this.Element.PropertyChanged += (s_, e_) => Invalidate();
        }

        public override void Draw(Canvas canvas)
        {
            BindablePicker bp = (BindablePicker)this.Element;

            // Code to draw my control
        }
    }
}

iOS

using System;
using System.Collections.Generic;
using System.Text;
using CoreGraphics;
using Xamarin.Forms.Platform.iOS;
using Namespace.CustomControls;
using UIKit;
using Xamarin.Forms;
using Namespace.iOS.Renderers;

[assembly: ExportRendererAttribute(typeof(BindablePicker), typeof(BindablePickerRenderer))]
namespace Namespace.iOS.Renderers
{
    public class BindablePickerRenderer : PickerRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);
            this.Element.PropertyChanged += (s_, e_) => SetNeedsDisplay();
        }
        public override void Draw(CGRect rect)
        {
            BindablePicker bp = (BindablePicker)this.Element;

            // Code to draw my control
        }
    }
}

Win电话

唯一可用的事件是OnApplyTemplate

如果有人对如何在Windows Phone 8.1平台上进入此控件的draw事件有任何想法,我将不胜感激。

提前致谢。

WindowsPhone没有直接绘图功能。

您将需要创建某种控件层次结构来满足Windows Phone平台的需求。

如果要进行自定义绘图,请使用WriteableBitmap并将其渲染到图像控件中。

或者也许看NGraphics ,与它的包装控制Xamarin.Forms 这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM