Skip to content

Instantly share code, notes, and snippets.

@adamped
Created April 8, 2016 12:31
Show Gist options
  • Select an option

  • Save adamped/1b33d66397c8e6a2ec805c15ecc36077 to your computer and use it in GitHub Desktop.

Select an option

Save adamped/1b33d66397c8e6a2ec805c15ecc36077 to your computer and use it in GitHub Desktop.
[assembly: ExportRenderer(typeof(Label), typeof(LabelRender))]
namespace Mobile.UWP.Renderer
{
public class LabelRender : LabelRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{
if (!e.NewElement.GestureRecognizers.Any())
return;
if (e.NewElement.GestureRecognizers.Any(x => x.GetType() == typeof(PressedGestureRecognizer)))
Control.PointerPressed += Control_PointerPressed;
if (e.NewElement.GestureRecognizers.Any(x => x.GetType() == typeof(ReleasedGestureRecognizer)))
Control.PointerReleased += Control_PointerReleased;
}
}
private void Control_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
foreach (var recognizer in this.Element.GestureRecognizers.Where(x => x.GetType() == typeof(PressedGestureRecognizer)))
{
var gesture = recognizer as PressedGestureRecognizer;
if (gesture != null)
if (gesture.Command != null)
gesture.Command.Execute(gesture.CommandParameter);
}
}
private void Control_PointerReleased(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
foreach (var recognizer in this.Element.GestureRecognizers.Where(x => x.GetType() == typeof(ReleasedGestureRecognizer)))
{
var gesture = recognizer as ReleasedGestureRecognizer;
if (gesture != null)
if (gesture.Command != null)
gesture.Command.Execute(gesture.CommandParameter);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment