UIHelper.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using XUGL;
  6. namespace XCharts.Runtime
  7. {
  8. /// <summary>
  9. /// UI帮助类。
  10. /// </summary>
  11. public static class UIHelper
  12. {
  13. internal static void DrawBackground(VertexHelper vh, UIComponent component)
  14. {
  15. var background = component.background;
  16. if (!background.show)
  17. return;
  18. if (background.image != null)
  19. return;
  20. var backgroundColor = component.theme.GetBackgroundColor(background);
  21. var borderWidth = background.borderStyle.GetRuntimeBorderWidth();
  22. var borderColor = background.borderStyle.GetRuntimeBorderColor();
  23. var cornerRadius = background.borderStyle.GetRuntimeCornerRadius();
  24. UGL.DrawRoundRectangleWithBorder(vh, component.graphRect, backgroundColor, backgroundColor, cornerRadius,
  25. borderWidth, borderColor);
  26. }
  27. internal static void InitBackground(UIComponent table)
  28. {
  29. if (table.background.show == false ||
  30. (table.background.image == null && ChartHelper.IsClearColor(table.background.imageColor)))
  31. {
  32. ChartHelper.DestoryGameObject(table.transform, "Background");
  33. return;
  34. }
  35. var sizeDelta = table.background.imageWidth > 0 && table.background.imageHeight > 0 ?
  36. new Vector2(table.background.imageWidth, table.background.imageHeight) :
  37. table.graphSizeDelta;
  38. var backgroundObj = ChartHelper.AddObject("Background", table.transform, table.graphMinAnchor,
  39. table.graphMaxAnchor, table.graphPivot, sizeDelta);
  40. backgroundObj.hideFlags = table.chartHideFlags;
  41. var backgroundImage = ChartHelper.EnsureComponent<Image>(backgroundObj);
  42. ChartHelper.UpdateRectTransform(backgroundObj, table.graphMinAnchor,
  43. table.graphMaxAnchor, table.graphPivot, sizeDelta);
  44. ChartHelper.SetBackground(backgroundImage, table.background);
  45. backgroundObj.transform.SetSiblingIndex(0);
  46. backgroundObj.SetActive(table.background.show && table.background.image != null);
  47. }
  48. }
  49. }