public DirectDrawingRenderer(Generator generator = null) { Generator = generator ?? Generator.Current; texture = TestIcons.Textures(generator); font = SystemFonts.Default(generator: generator); textBrush = new SolidBrush(Colors.White, generator); }
public TextureBrushesSection() { var image = TestIcons.Textures(); var drawable = new Drawable { Size = new Size(image.Size.Width, image.Size.Height * 10) }; var drawableTarget = new DrawableTarget(drawable); var layout = new DynamicLayout(new Padding(10)); layout.AddSeparateRow(null, drawableTarget.Checkbox(), null); layout.Add(new Scrollable { Content = drawable }); Content = layout; var renderers = new List <Action <Graphics> >(); for (var i = 0; i < 10; ++i) { var w = image.Size.Width / 3; // same as height var img = image; if (i > 0) { img = img.Clone(new Rectangle((i - 1) % 3 * w, (i - 1) / 3 * w, w, w)); } var brush = new TextureBrush(img); renderers.Add(graphics => { var temp = brush.Transform; // save state brush.Transform = Matrix.FromRotation(90, Generator); graphics.FillRectangle(brush, new RectangleF(image.Size)); graphics.TranslateTransform(0, image.Size.Height); brush.Transform = temp; }); } drawable.Paint += (s, e) => { var graphics = drawableTarget.BeginDraw(e); foreach (var renderer in renderers) { renderer(graphics); } drawableTarget.EndDraw(e); }; }
public TextureBrushesSection2() { image = TestIcons.Textures(); var drawable = new Drawable(); var drawableTarget = new DrawableTarget(drawable); var layout = new DynamicLayout(new Padding(10)); layout.AddSeparateRow(null, drawableTarget.Checkbox(), null); layout.Add(drawable); this.Content = layout; var w = image.Size.Width / 3; // same as height var img = image.Clone(new Rectangle(w, w, w, w)); var textureBrush = new TextureBrush(img); var solidBrush = new SolidBrush(Colors.Blue); var linearGradientBrush = new LinearGradientBrush(Colors.White, Colors.Black, PointF.Empty, new PointF(0, 100), Generator); var font = SystemFonts.Default(); drawable.BackgroundColor = Colors.Green; drawable.MouseMove += HandleMouseMove; drawable.MouseDown += HandleMouseMove; drawable.Paint += (s, e) => { var graphics = drawableTarget.BeginDraw(e); graphics.DrawText(font, Colors.White, 3, 3, "Move the mouse in this area to move the shapes."); // texture brushes var temp = location; DrawShapes(textureBrush, temp, img.Size, graphics); // solid brushes temp = temp + new PointF(200, 0); DrawShapes(solidBrush, temp, img.Size, graphics); // linear gradient brushes temp = temp + new PointF(200, 0); DrawShapes(linearGradientBrush, temp, img.Size, graphics); drawableTarget.EndDraw(e); }; }
public GetPixelSection() { var location = new Point(100, 100); var image = TestIcons.Textures(); var drawable = new Drawable(); var drawableTarget = new DrawableTarget(drawable) { UseOffScreenBitmap = true }; this.Content = drawable; EventHandler <MouseEventArgs> mouseHandler = (s, e) => { location = new Point(e.Location); ((Control)s).Invalidate(); e.Handled = true; }; drawable.MouseMove += mouseHandler; drawable.MouseDown += mouseHandler; var font = SystemFonts.Default(); drawable.BackgroundColor = Colors.Green; drawable.Paint += (s, e) => { var graphics = drawableTarget.BeginDraw(e); graphics.DrawText(font, Colors.White, 3, 3, "Move the mouse in this area to read the pixel color."); graphics.DrawImage(image, new PointF(100, 100)); var pixelColor = drawableTarget.OffscreenBitmap.GetPixel(location.X, location.Y); graphics.DrawText(font, Colors.White, 3, 20, "Color: " + pixelColor); drawableTarget.EndDraw(e); }; }