Хорошо, у меня есть Grid
с 4 дочерними Images
, каждый из которых расположен во всех четырех углах Grid
примерно так.
Цель двух нижних дочерних элементов Images
- растянуть сетку.Поэтому, когда пользователь перетаскивает эти углы, Grid
растягивается.
Моя проблема в том, что дети тоже растягиваются, чего я не хочу.
Есть ли какой-нибудь способ гарантировать, что размер детей не растянется с Grid
?
Спасибо.
PS Я мог бы отсоединить Child Images
от Grid
, но это намного проще и элегантнее, так как позиции x / y остаются на краях Grid
отлично, я простоесли возможно, убедитесь, что они не Scale
с ним.
Создание сетки и добавление дочерних элементов
//ImageGrid
ImageControl.Height = 500;
ImageControl.Width = 500;
ImageControl.ManipulationMode = ManipulationModes.All;
canvas.Children.Add(ImageControl);
ImageControl.Children.Add(tickBtn);
ImageControl.Children.Add(delBtn);
ImageControl.Children.Add(skewBtn);
ImageControl.Children.Add(strBtn);
ImageManipulation.Image_Drag = new CompositeTransform();
ImageManipulation.Image_Drag.CenterX = imW / 2;
ImageManipulation.Image_Drag.CenterY = imH / 2;
ImageControl.RenderTransform = ImageManipulation.Image_Drag;
strBtn.ManipulationDelta += ImageManipulation.resBtn_Manip;
skewBtn.ManipulationDelta += MaskManipulation.skewBtn_Manip;
dragControl.ManipulationDelta += ImageManipulation.movBtn_Manip;
Класс манипулирования
public static CompositeTransform Image_Drag;
public static void resBtn_Manip(object sender, ManipulationDeltaRoutedEventArgs e)
{
Mask_Drag.ScaleX += e.Delta.Translation.X;
Mask_Drag.ScaleY += e.Delta.Translation.X;
}
public static void movBtn_Manip(object sender, ManipulationDeltaRoutedEventArgs e)
{
Mask_Drag.TranslateX += e.Delta.Translation.X;
Mask_Drag.TranslateY += e.Delta.Translation.Y;
}
public static void skewBtn_Manip(object sender, ManipulationDeltaRoutedEventArgs e)
{
Mask_Drag.ScaleX -= e.Delta.Translation.X;
Mask_Drag.ScaleY += e.Delta.Translation.Y;
if (Mask_Drag.ScaleX < 0.5)
{
Mask_Drag.ScaleX = 0.5;
}
if (Mask_Drag.ScaleY < 0.5)
{
Mask_Drag.ScaleY = 0.5;
}
}