Перетащите элемент пользовательского интерфейса. Универсальная Платформа Windows

Я боролся в течение нескольких дней, чтобы найти способ сделать элемент пользовательского интерфейса перетащить возможность в универсальной платформе Windows. Я создаю программное обеспечение для редактирования фотографий, которое должно быть в состоянии обрезать изображения. У меня есть поле обрезки на экране, но не могу понять, как сделать так, чтобы пользователь мог перетащить поле в место, где они хотят обрезать.снимок экрана

Пользователь должен иметь возможность нажать на коробку, обведенную красным кружком, и перетащить ее на любую посуду на экране.

1 ответ

  1. Необходимо использовать события Manipulation[Started/Delta / Completed]. Попробуйте этот код:

    <Grid Background="White">
        <Border Width="150" Height="100" Background="Transparent" BorderBrush="Red" BorderThickness="1"
                ManipulationMode="TranslateX,TranslateY" RenderTransformOrigin="0.5,0.5" ManipulationDelta="Border_ManipulationDelta">
    
            <Border.RenderTransform>
                <CompositeTransform x_Name="BorderTransform" />
            </Border.RenderTransform>
        </Border>
    </Grid>
    
    private void Border_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        BorderTransform.TranslateX += e.Delta.Translation.X;
        BorderTransform.TranslateY += e.Delta.Translation.Y;
    }