将墨迹工具栏自定义笔按钮托盘绑定到墨迹工具栏圆珠笔按钮不添加颜色



所以,我从这里尝试代码: https://blogs.windows.com/windowsdeveloper/2016/11/22/windows-ink-2-digging-deeper-with-ink-and-pen

这是 XAML 的代码:

<CommandBar Name="myCommandBar" IsOpen="True">
<CommandBar.Content>
<InkToolbar x:Name="myInkToolbar" TargetInkCanvas="{x:Bind myInkCanvas}">
<InkToolbarBallpointPenButton Name="penButton" />
<InkToolbarCustomPenButton Name="markerButton" CustomPen="{StaticResource MarkerPen}" Palette="{x:Bind penButton.Palette}" >
<SymbolIcon Symbol="Highlight" />
<InkToolbarCustomPenButton.ConfigurationContent>
<InkToolbarPenConfigurationControl />
</InkToolbarCustomPenButton.ConfigurationContent>
</InkToolbarCustomPenButton>
</InkToolbar>
</CommandBar.Content>
</CommandBar>

但是当我点击调色板时,它只显示黑白。但是,当我在单击按钮时将此markerButton.Palette = penButton.Palette放入代码隐藏中时,将显示所有颜色。但是,如果我在MainPage()构造函数上执行此操作,它不起作用。

调试后,它将penButton.Palette显示为null但仅在构造函数中,在button_click方法中,它起作用。

那么,什么给了呢?如何将InkToolbarCustomPenButton Palette绑定到InkToolbarBallpointPenButton Palette

这是我的代码隐藏文件:

public MainPage()
{
this.InitializeComponent();
Debug.Write(penButton.Palette.Count); // this doesn't write anything and produces palette as null
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Debug.Write(penButton.Palette.Count); // this produces 30
markerButton.Palette = penButton.Palette;
}

编辑:这是重现相同问题的测试样本的链接: https://github.com/dydx-git/Ink2Demo

将 InkToolbarCustomPenButton Pallete 绑定到 InkToolbarBallpointPenButton 不会添加颜色。

问题是你用x:bind来获取penButton的Palette(延迟加载(,但x:bind的默认模型是一次性的。要解决此问题,请 从构造中删除markerButton.Palette = penButton.Palette此行MainPage并编辑 XAML,如下所示。

<InkToolbarCustomPenButton Name="markerButton" CustomPen="{StaticResource MarkerPen}" Palette="{x:Bind penButton.Palette,Mode=OneWay}" >
<SymbolIcon Symbol="Highlight" />
<InkToolbarCustomPenButton.ConfigurationContent>
<InkToolbarPenConfigurationControl />
</InkToolbarCustomPenButton.ConfigurationContent>
</InkToolbarCustomPenButton>

最新更新