public ApplicationCanvas() { Width = DefaultWidth; Height = DefaultHeight; Colors.Blue.ToGradient(Colors.Red, DefaultHeight / 4).Select( (c, i) => new Rectangle { Fill = new SolidColorBrush(c), Width = DefaultWidth, Height = 4, }.MoveTo(0, i * 4).AttachTo(this) ).ToArray(); var bg = new Avalon.Images.belchite_bw { Width = DefaultWidth, Height = DefaultHeight }.AttachTo(this); var fg_50 = new Avalon.Images.belchite { Width = DefaultWidth, Height = DefaultHeight, Opacity = 0.5 }.AttachTo(this); var fg = new Avalon.Images.belchite { Width = DefaultWidth, Height = DefaultHeight }.AttachTo(this); var cursor = new Rectangle { Fill = Brushes.Red, Width = 16, Height = 16 }.AttachTo(this); var overlay = new Rectangle { Fill = Brushes.White, Width = DefaultWidth, Height = DefaultHeight, Opacity = 0 } //.MoveTo(0, 0) .AttachTo(this); overlay.MouseMove += (sender, e) => { var p = e.GetPosition(overlay); cursor.MoveTo(p.X - 8, p.Y - 8); { var c = new RectangleGeometry { Rect = new Rect { X = p.X - 64, Y = p.Y - 32, Width = 128, Height = 64 } }; fg_50.Clip = c; } { var c = new RectangleGeometry { Rect = new Rect { X = p.X - 32, Y = p.Y - 32, Width = 64, Height = 64 } }; fg.Clip = c; } }; }