Я делаю панорамирование холста изображения (с Image
и маркировками на нем) в серебряном свете, как показано ниже. Панорамирование работает, но изображение выходит за пределы внешней границы по нижнему и правому краям над другими элементами управления в соседних ячейках сетки. Я не мог понять причину. Любые предложения будут очень полезны.
<Border Grid.Row="1" Grid.Column="0">
<Grid HorizontalAlignment="Stretch" Name="gridMain" VerticalAlignment="Stretch">
<Border Name="borderImage" BorderBrush="Black" BorderThickness="1" Height="Auto" Width="Auto" HorizontalAlignment="Left" VerticalAlignment="Top" >
<StackPanel Name="spCanvasHolder" Grid.Row="0" Grid.Column="0" Height="Auto" HorizontalAlignment="Left" VerticalAlignment="Top">
<Canvas Name="canvasImage" Background="Transparent" Width="Auto" MouseWheel="canvasImage_MouseWheel" >
<Image Canvas.Left="0" Canvas.Top="0" Height="Auto" Name="imgMain" Stretch="None" Width="Auto" HorizontalAlignment="Left" VerticalAlignment="Top" MouseLeftButtonDown="imgMain_MouseLeftButtonDown" MouseMove="imgMain_MouseMove" MouseLeftButtonUp="imgMain_MouseLeftButtonUp"/>
</Canvas>
</StackPanel>
</Border>
.
.
</Grid>
</Border>
private void imgMain_MouseMove(object sender, MouseEventArgs e)
{
if (isLeftClicked && isPanningEnabled)
{
....
Thickness currMargin = canvasImage.Margin;
currMargin.Left += lLateralMove;
currMargin.Top += lVerticalMove;
canvasImage.Margin = currMargin;
}
}