rendered paste body <Grid Name="grid" Background="Transparent" MouseMove="Grid_MouseMove" MouseWheel="grid_MouseWheel">
<Canvas Name="canvas">
<Button Canvas.Left="100" Canvas.Top="100" Content="Hello, World!" />
</Canvas>
</Grid>
public partial class Window1 : Window
{
private double zoom = 1.0;
public Window1()
{
InitializeComponent();
}
private void Grid_MouseMove(object sender, MouseEventArgs e)
{
ApplyZoom(e);
}
private void grid_MouseWheel(object sender, MouseWheelEventArgs e)
{
int delta = e.Delta / 120;
if (delta > 0)
zoom *= 1.1;
else
zoom /= 1.1;
ApplyZoom(e);
}
private void ApplyZoom(MouseEventArgs e)
{
Point p = e.GetPosition(grid);
ScaleTransform scaleTransform = new ScaleTransform(zoom, zoom, p.X, p.Y);
canvas.RenderTransform = scaleTransform;
}
}