ImageCircleRenderer.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Windows.Media;
  3. using FormulaOneApp.WinPhone.Controls;
  4. using Xamarin.Forms;
  5. using Xamarin.Forms.Platform.WinPhone;
  6. [assembly: ExportRenderer(typeof(FormulaOneApp.Controls.CircleImageAbstraction.CircleImage), typeof(ImageCircleRenderer))]
  7. namespace FormulaOneApp.WinPhone.Controls
  8. {
  9. /// <summary>
  10. /// ImageCircle Implementation
  11. /// </summary>
  12. public class ImageCircleRenderer : ImageRenderer
  13. {
  14. /// <summary>
  15. /// Used for registration with dependency service
  16. /// </summary>
  17. public static void Init()
  18. {
  19. }
  20. /// <summary>
  21. ///
  22. /// </summary>
  23. /// <param name="sender"></param>
  24. /// <param name="e"></param>
  25. protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
  26. {
  27. base.OnElementPropertyChanged(sender, e);
  28. if (Control != null && Control.Clip == null)
  29. {
  30. var min = Math.Min(Element.Width, Element.Height) / 2.0f;
  31. if (min <= 0)
  32. return;
  33. Control.Clip = new EllipseGeometry
  34. {
  35. Center = new System.Windows.Point(min, min),
  36. RadiusX = min,
  37. RadiusY = min
  38. };
  39. }
  40. }
  41. }
  42. }