WPF縮放-矩陣變換
阿新 • • 發佈:2018-11-14
WPF縮放-矩陣變換
<Grid Margin="0 0 0 0" Grid.Column="1" x:Name="CanvasListPnl" MouseDown="CanvasListPnl_MouseDown" MouseUp="CanvasListPnl_MouseUp" MouseWheel="CanvasListPnl_MouseWheel" ClipToBounds="True"> <Grid.RenderTransform> <MatrixTransform x:Name="transForm"></MatrixTransform> </Grid.RenderTransform> </Grid> </Grid>
private void CanvasListPnl_MouseWheel(object sender, MouseWheelEventArgs e) { var center = getPosition(sender, e); var scale = (e.Delta > 0 ? 1.2 : 1 / 1.2); var matrix = transForm.Matrix; matrix.ScaleAt(scale, scale, center.X, center.
Y); (e.OriginalSource as Canvas).Children.Clear(); transForm.Matrix = matrix; DrawXYAxis(28,34); } Point getPosition(object sender, MouseEventArgs e) { return e.GetPosition(sender as UIElement) * transForm.Matrix; }