using System; using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace WpfApp167 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.WindowState = WindowState.Maximized; this.Loaded += MainWindow_Loaded; } private void MainWindow_Loaded(object sender, RoutedEventArgs e) { Path rectPath = GenRectanglePath(this.ActualWidth, this.ActualHeight); this.gd.Children.Add(rectPath); Path gPath = GenLinePath(this.ActualWidth, this.ActualHeight); this.gd.Children.Add(gPath); Path elpPath = GenEllipsePath(this.ActualWidth, this.ActualHeight); this.gd.Children.Add(elpPath); Path circlePath=GenCirclePath(this.ActualWidth,this.ActualHeight); this.gd.Children.Add(circlePath); } private Path GenCirclePath(double actualWidth, double actualHeight) { EllipseGeometry circleGeo = new EllipseGeometry(new Point(actualWidth / 2, actualHeight / 2), actualHeight / 2-50, actualHeight / 2-50); Path circlePath = new Path(); circlePath.Stroke = new SolidColorBrush(Colors.Blue); circlePath.StrokeThickness = 20; circlePath.Data = circleGeo; return circlePath; } private Path GenEllipsePath(double actualWidth, double actualHeight) { Path elpPath = new Path(); elpPath.Stroke = new SolidColorBrush(Colors.Yellow); elpPath.StrokeThickness = 20; EllipseGeometry elpGeo= GenEllipseGeo(actualWidth, actualHeight); elpPath.Data= elpGeo; return elpPath; } private EllipseGeometry GenEllipseGeo(double actualWidth, double actualHeight) { EllipseGeometry elpGeo = new EllipseGeometry(new Point(actualWidth/2,actualHeight/2), actualWidth/2-50,actualHeight/2-50); return elpGeo; } private static Path GenLinePath(double actualWidth, double actualHeight) { PathGeometry pathGeo = GenLinePathGeometry(actualWidth,actualHeight); Path gPath = new Path(); gPath.Fill = Brushes.Black; gPath.Stroke = Brushes.Red; gPath.StrokeThickness = 20; gPath.Data = pathGeo; return gPath; } private static Path GenRectanglePath(double actualWidth, double actualHeight) { RectangleGeometry rectGeo = GenRectGeometry(actualWidth, actualWidth); Path rectPath = new Path(); rectPath.Fill = Brushes.Cyan; rectPath.Stroke = Brushes.Black; rectPath.StrokeThickness = 10; rectPath.Data = rectGeo; return rectPath; } private static RectangleGeometry GenRectGeometry(double actualWidth, double actualHeight) { RectangleGeometry myRectangleGeometry = new RectangleGeometry(); myRectangleGeometry.Rect = new Rect(0, 0, actualWidth, actualHeight); return myRectangleGeometry; } private static PathGeometry GenLinePathGeometry(double actualWidth, double actualHeight) { PathGeometry pathGeo = new PathGeometry(); PathFigure pf1 = new PathFigure(); pf1.StartPoint = new Point(0, 0); pf1.Segments.Add(new LineSegment(new Point(actualWidth, actualHeight), true)); pathGeo.Figures.Add(pf1); return pathGeo; } } }