Я разрабатываю небольшое приложение WPF, которое использует ScrollViewer
для отображения Image
в Window
. Я создал окно и весь его относительный код (я покажу его, если необходимо, но я думаю, что это не полезно для точки этого вопроса) программно.
Вопрос/как это выглядит следующим образом. Я должен показать/скрыть (нажать кнопку) элемент управления (в основном InkCanvas
) над изображением, содержащимся в ScrollViewer
. За исключением части oh show/hide довольно просто использовать событие кнопки), что является лучшим способом добавить элемент управления (и какой тип элемента управления/контейнера) в окне, заставляя его переходить через ScrollViewer, а затем иметь возможность перемещаться вокруг тащить его?
Я относительно новичок в WPF. Я использовал много WinForms (я могу сделать это в WinForms, но WPF - это новый мир для меня).
Заранее спасибо!
Что касается контейнера, вы должны использовать 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.