xamarin/SignaturePad

IsEnabled does not work as expected in UWP

aparent-emgs opened this issue · 0 comments

Description

I have a custom renderer implemented for UWP for a control in my Xamarin.Forms application that uses the SignaturePadCanvasView class as its native control. I want the control to be disabled by default when it is first displayed in the view. The problem I've stumbled upon is that the canvas only seems to be disabled when IsEnabled is changed while the control is being displayed.

You can see the reason why here

		public SignaturePadCanvasView ()
		{
			DefaultStyleKey = typeof (SignaturePadCanvasView);

			IsEnabledChanged += delegate
			{
				var ip = inkPresenter;
				if (ip != null)
					ip.IsInputEnabled = IsEnabled;
			};
		}

inkPresenter.IsInputEnabled is only mutated when the value of IsEnabled is changed, but it should ideally also be mutated to the current value of IsEnabled as soon as it becomes available, otherwise inkPresenter remains enabled until IsEnabled is set to true, then back to false

Expected Behavior

The control should be disabled if IsEnabled is set to false at instanciation.

Actual Behavior

The control is still enabled.

Basic Information

  • Version with issue: 3.0.0
  • Last known good version: N/A
  • IDE: Visual Studio 15.9.13
  • Platform Target Frameworks:
    • UWP: 16299
    • Xamarin.Forms: 3.0.0.482510
  • Target Devices:
    • PC - Windows 10