mamad1166 Ответов: 0

В WPF сенсорный предел пользовательского интерфейса, изображения (или любой элемент) с его родителем


Я пытаюсь разработать приложение для рабочего стола windows, которое поддерживает сенсорные экраны
поэтому я хочу позволить пользователю масштабировать или перемещать фотографии с помощью прикосновения
но моя проблема в том, что с этим кодом картинка будет перемещаться по окнам не только в своем родителе (Canvas)
я хочу ограничить изображение (прямоугольник) в его родителе (холст)

это пример кода для перемещения или масштабирования прямоугольника :

код XAML

<Canvas Background="Green"  x:Name="_canvas"
       ManipulationStarting="_canvas_ManipulationStarting"
       ManipulationDelta="_canvas_ManipulationDelta" Margin="76,105,117,46">
           <rectangle ismanipulationenabled="True" fill="Red" width="100" height="100"></rectangle>
       </Canvas>



С#
private void _canvas_ManipulationStarting(object sender,
                      ManipulationStartingEventArgs e)
{
    e.ManipulationContainer = _canvas;
    e.Handled = true;
}


private void _canvas_ManipulationDelta(object sender,
                         ManipulationDeltaEventArgs e)
{

    var element = e.OriginalSource as UIElement;

    var transformation = element.RenderTransform
                                         as MatrixTransform;
    var matrix = transformation == null ? Matrix.Identity :
                                   transformation.Matrix;

    matrix.ScaleAt(e.DeltaManipulation.Scale.X,
                   e.DeltaManipulation.Scale.Y,
                   e.ManipulationOrigin.X,
                   e.ManipulationOrigin.Y);

    matrix.RotateAt(e.DeltaManipulation.Rotation,
                    e.ManipulationOrigin.X,
                    e.ManipulationOrigin.Y);

    matrix.Translate(e.DeltaManipulation.Translation.X,
                     e.DeltaManipulation.Translation.Y);

    element.RenderTransform = new MatrixTransform(matrix);
    e.Handled = true;
}


Что я уже пробовал:

я пытаюсь добавить сенсорную поддержку в свое приложение

0 Ответов