private void imagepatternToolStripMenuItem_Click(object sender, EventArgs e)
{
lastSelected = "imagepattern";
OnPaintAction = cr =>
{
int w, h;
ImageSurface image;
Pattern pattern;
Matrix matrix = new Matrix();
image = new ImageSurface(romedalenPngData);
w = image.Width;
h = image.Height;
pattern = new SurfacePattern(image);
pattern.Extend = Extend.Repeat;
cr.Translate(128.0, 128.0);
cr.Rotate(Math.PI / 4);
cr.Scale(1 / Math.Sqrt(2), 1 / Math.Sqrt(2));
cr.Translate(-128.0, -128.0);
matrix.InitScale(w/256.0*5.0, h/256.0*5.0);
pattern.Matrix = matrix;
cr.SetSource(pattern);
cr.Rectangle(0, 0, 256.0, 256.0);
cr.Fill();
pattern.Dispose();
image.Dispose();
};
Invalidate();
}