Как использовать глобальный InkToolbar для нескольких элементов управления InkCanvas? - PullRequest
0 голосов
/ 26 января 2020

Итак, у меня есть ListView, состоящий из нескольких InkCanvas элементов управления (которые в основном являются страницами документа). Теперь я хотел бы использовать глобальный InkToolbar для всех моих страниц (элементы управления InkCanvas). Тем не менее, InkToolbar позволяет связывать только один TargetInkCanvas объект, и я не совсем уверен, как мне обойти это и спроектировать свои страницы так, чтобы они все использовали один и тот же InkToolbar.

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Хорошо, так что я нашел обходной путь. Решение довольно нелегкое, но оно работает. Возможно обработать ввод указателя в InkCanvas до обработки. Это можно сделать с помощью класса CoreInkIndependentInputSource следующим образом:

CoreInkIndependentInputSource core = CoreInkIndependentInputSource.Create(inkCanvas.InkPresenter);
core.PointerEntering += PointerEntering;

Затем в моем обработчике событий PointerEntering я могу изменить сигнал распространения, что текущий холст должен быть связан с InkToolbar (в В моем случае мне пришлось использовать VisualTreeHelper для передачи информации в родительский ListView).

0 голосов
/ 27 января 2020

Как использовать глобальный InkToolbar для нескольких элементов управления InkCanvas?

InkToolbar позволяет привязывать только один TargetInkCanvas в коде xaml со схемой x:bind. Если вам нужен глобальный InkToolbar, попробуйте установить TargetInkCanvas в коде, когда вы используете спецификацию c InkCanvas.

private void Button_Click(object sender, RoutedEventArgs e)
{
    inkToolbar.TargetInkCanvas = MyInkCanvas;
}
...