using System; using System.Collections.Generic; using System.Linq; using Ooui; namespace Samples { public class DrawSample : ISample { public string Title => "Drawing"; public string Path => "/draw"; public void Publish () { UI.Publish (Path, CreateElement ()); } public Element CreateElement () { var heading = new Heading ("Draw"); var subtitle = new Paragraph ("Click to draw a masterpiece"); var toolSel = new Select (); toolSel.AppendChild (new Option { Text = "Boxes", Value = "box" }); toolSel.AddOption ("Circles", "circle"); var canvas = new Canvas { Width = 320, Height = 240, }; var context = canvas.GetContext2D (); canvas.Click += (s, e) => { var radius = 10; context.BeginPath (); if (toolSel.Value == "box") { context.Rect (e.OffsetX - radius, e.OffsetY - radius, 2*radius, 2*radius); } else { context.Arc (e.OffsetX, e.OffsetY, radius, 0, 2 * Math.PI, true); } context.Fill (); }; canvas.Style.Cursor = "pointer"; canvas.Style.BorderColor = "#CCC"; canvas.Style.BorderStyle = "solid"; canvas.Style.BorderWidth = "1px"; var clearbtn = new Button ("Clear") { Type = ButtonType.Submit, ClassName = "btn btn-danger", }; clearbtn.Click += (s, e) => { context.ClearRect (0, 0, canvas.Width, canvas.Height); }; clearbtn.Style.Display = "block"; var app = new Div (); app.AppendChild (heading); app.AppendChild (subtitle); app.AppendChild (new Div (toolSel)); app.AppendChild (canvas); app.AppendChild (clearbtn); return app; } } }