如何将全局 InkToolbar 用于多个 InkCanvas 控件?
How to use a global InkToolbar for multiple InkCanvas controls?
所以我有一个 ListView
由多个 InkCanvas
控件组成(基本上是文档的页面)。现在我想对我的所有页面(InkCanvas 控件)使用全局 InkToolbar
。但是,InkToolbar
只允许绑定到单个 TargetInkCanvas
对象,我不确定如何解决这个问题并设计我的页面,以便它们都共享相同的 InkToolbar。
How to use a global InkToolbar for multiple InkCanvas controls?
InkToolbar
仅允许使用 x:bind
方案绑定到 xaml 代码中的单个 TargetInkCanvas
。如果您确实想要全局 InkToolbar
,请在使用特定 InkCanvas
.
时尝试在后面的代码中设置 TargetInkCanvas
private void Button_Click(object sender, RoutedEventArgs e)
{
inkToolbar.TargetInkCanvas = MyInkCanvas;
}
好的,所以我找到了解决方法。该解决方案相当不优雅,但确实有效。可以在处理之前在 InkCanvas
中处理指针输入。这可以做到
使用 CoreInkIndependentInputSource
class 如下:
CoreInkIndependentInputSource core = CoreInkIndependentInputSource.Create(inkCanvas.InkPresenter);
core.PointerEntering += PointerEntering;
然后在我的 PointerEntering
事件处理程序中,我可以更改传播当前 canvas 应该绑定到 InkToolbar
的信号(在我的例子中我不得不使用 VisualTreeHelper
将信息传播到父 ListView)。
所以我有一个 ListView
由多个 InkCanvas
控件组成(基本上是文档的页面)。现在我想对我的所有页面(InkCanvas 控件)使用全局 InkToolbar
。但是,InkToolbar
只允许绑定到单个 TargetInkCanvas
对象,我不确定如何解决这个问题并设计我的页面,以便它们都共享相同的 InkToolbar。
How to use a global InkToolbar for multiple InkCanvas controls?
InkToolbar
仅允许使用 x:bind
方案绑定到 xaml 代码中的单个 TargetInkCanvas
。如果您确实想要全局 InkToolbar
,请在使用特定 InkCanvas
.
TargetInkCanvas
private void Button_Click(object sender, RoutedEventArgs e)
{
inkToolbar.TargetInkCanvas = MyInkCanvas;
}
好的,所以我找到了解决方法。该解决方案相当不优雅,但确实有效。可以在处理之前在 InkCanvas
中处理指针输入。这可以做到
使用 CoreInkIndependentInputSource
class 如下:
CoreInkIndependentInputSource core = CoreInkIndependentInputSource.Create(inkCanvas.InkPresenter);
core.PointerEntering += PointerEntering;
然后在我的 PointerEntering
事件处理程序中,我可以更改传播当前 canvas 应该绑定到 InkToolbar
的信号(在我的例子中我不得不使用 VisualTreeHelper
将信息传播到父 ListView)。