Пользовательские операции в Drag and Drop - PullRequest
0 голосов
/ 17 октября 2018

Я делаю программное обеспечение для управления библиотекой.Это скриншот: screenshot

У меня есть такие функции, как перетаскивание книги на значок удаления, чтобы удалить книгу.Но есть два препятствия:

  1. DataPackageOperation имеет только четыре возможности: Копировать, связать, переместить ни одного.Таким образом, после четырех сложно определить, на какой AppBarButton была написана книга.
  2. Я планирую добавить больше элементов в CommandBar.Но есть только четыре возможных операции

Мне нужен способ дать пользователю возможность настраивать обратную связь относительно того, какая книга AppBarButton в настоящее время перетаскивается.DataPackageOperation содержит только четыре.Из этого «None» не может быть использовано (потому что это будет сбивать с толку).Есть ли способ предоставить такую ​​обратную связь?

1 Ответ

0 голосов
/ 18 октября 2018

Мне нужен способ предоставить пользователю свой отзыв о том, какая книга AppBarButton в настоящее время перетаскивается на

. Вы можете предоставить пользователю собственный отзыв с помощью пользовательского интерфейса перетаскивания.Следующий код взят из XamlDragAndDrop официального образца кода.

private void TargetTextBox_DragEnter(object sender, Windows.UI.Xaml.DragEventArgs e)
{
    /// Change the background of the target
    VisualStateManager.GoToState(this, "Inside", true);
    bool hasText = e.DataView.Contains(StandardDataFormats.Text);
    e.AcceptedOperation = hasText ? DataPackageOperation.Copy : DataPackageOperation.None;
    if (hasText)
    {
        e.DragUIOverride.Caption = "Drop here to insert text";
        // Now customize the content
        if ((bool)HideRB.IsChecked)
        {
            e.DragUIOverride.IsGlyphVisible = false;
            e.DragUIOverride.IsContentVisible = false;
        }
        else if ((bool)CustomRB.IsChecked)
        {
            var bitmap = new BitmapImage(new Uri("ms-appx:///Assets/dropcursor.png", UriKind.RelativeOrAbsolute));
            // Anchor will define how to position the image relative to the pointer
            Point anchor = new Point(0,52); // lower left corner of the image
            e.DragUIOverride.SetContentFromBitmapImage(bitmap, anchor);
            e.DragUIOverride.IsGlyphVisible = false;
            e.DragUIOverride.IsCaptionVisible = false;
        }
        // else keep the DragUI Content set by the source
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...