1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using Avalonia.Controls;
- using Avalonia.Controls.Shapes;
- using Avalonia.Media;
- using Avalonia.Svg;
- using Svg.Model;
- using System;
- namespace HelloItQuantum.Function
- {
- public static class CreateElFriend
- {
- private static Uri baseUri = new Uri("avares://HelloItQuantum/");
- private static Panel CreateEye(double size, Color color)
- {
- Panel panel = new Panel();
- Ellipse eyeball = CreateEllipse(size - 2, color);
- panel.Children.Add(eyeball);
- Image eye = CreateSvgImage("/Assets/ImgCreateFriend/eye.svg", size, null);
- panel.Children.Add(eye);
- return panel;
- }
- private static Rectangle CreateRectangle(double size, Color color)
- {
- Rectangle rectangle = new Rectangle();
- rectangle.Width = size;
- rectangle.Height = size;
- rectangle.RadiusX = 10;
- rectangle.RadiusY = 10;
- rectangle.Fill = new SolidColorBrush(color);
- return rectangle;
- }
- public static Image CreateSvgImage(string path, double height, SvgParameters? svgParameters)
- {
- SvgImage svgImage = new SvgImage();
- svgImage.Source = SvgSource.Load(path, baseUri, svgParameters);
- Image convertedImage = new Image
- {
- Source = svgImage,
- Height = height
- };
- return convertedImage;
- }
- public static Ellipse CreateEllipse(double size, Color color)
- {
- Ellipse ellipse = new Ellipse();
- ellipse.Fill = new SolidColorBrush(color);
- ellipse.Width = size;
- ellipse.Height = size;
- return ellipse;
- }
- public static Control CreateElement(int indexElement, Color color)
- {
- string textColor = color.ToString().Substring(3);
- SvgParameters svg = new SvgParameters(null, $"path {{ fill: #{textColor}; }}");
- switch (indexElement)
- {
- case 0: return CreateEllipse(110, color);
- case 1: return CreateRectangle(110, color);
- case 2: return CreateSvgImage("/Assets/ImgCreateFriend/body.svg", 110, svg);
- case 3: return CreateSvgImage("/Assets/ImgCreateFriend/foot1.svg", 60, svg);
- case 4: return CreateSvgImage("/Assets/ImgCreateFriend/foot2.svg", 60, svg);
- case 5: return CreateEye(35, color);
- case 6: return CreateEye(45, color);
- default: return CreateEllipse(110, color);
- }
- }
- }
- }
|