Перемещение контроля над ScrollViewer

1

Я разрабатываю небольшое приложение WPF, которое использует ScrollViewer для отображения Image в Window. Я создал окно и весь его относительный код (я покажу его, если необходимо, но я думаю, что это не полезно для точки этого вопроса) программно.

Вопрос/как это выглядит следующим образом. Я должен показать/скрыть (нажать кнопку) элемент управления (в основном InkCanvas) над изображением, содержащимся в ScrollViewer. За исключением части oh show/hide довольно просто использовать событие кнопки), что является лучшим способом добавить элемент управления (и какой тип элемента управления/контейнера) в окне, заставляя его переходить через ScrollViewer, а затем иметь возможность перемещаться вокруг тащить его?

Я относительно новичок в WPF. Я использовал много WinForms (я могу сделать это в WinForms, но WPF - это новый мир для меня).

Заранее спасибо!

Теги:
wpf

1 ответ

2
Лучший ответ

Что касается контейнера, вы должны использовать Grid которая будет центрировать и накладывать поверх друг друга элементы управления в одной и той же ячейке.

Что касается перетаскивания, если вы хотите реализовать его самостоятельно, я предоставил минимальную реализацию здесь: qaru.site/questions/2035742/...

В противном случае вы можете использовать поведение MouseDragElementBehavior предоставляемое Blend.

Вот учебник, демонстрирующий его использование от самого Blend: http://www.c-sharpcorner.com/uploadfile/nipuntomar/expression-blend-4-behaviors/

Но вы можете использовать его без Blend, импортируя библиотеки Blend и используя его из своего XAML с чем-то вроде:

<InkCanvas ...>
    <interactivity:Interaction.Behaviors>
        <blendbehaviors:MouseDragElementBehavior />
    </interactivity:Interaction.Behaviors>
</InkCanvas>

с interactivity и blendbehaviors, отображаемыми в пространства имен Blend.

  • 0
    Мне пришлось ответить на мой вопрос, пост был слишком длинным для прямого комментария.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню