Стирание части сток в UWP - PullRequest
       54

Стирание части сток в UWP

0 голосов
/ 05 декабря 2018

Я использую новую технологию рукописного ввода для Windows 10, используя InkCanvas / InkPresenter в UWP.Рендеринг чернил действительно хорош, за исключением того, что я не могу стереть только часть обводки.Я смотрю на OneNote, который, как я предполагаю, использует ту же технологию, и они предлагают стирать часть удара.Я знаю, что это было невозможно, когда впервые был представлен InkCanvas / InkPresenter, но мне было интересно, есть ли способ достичь этого?Может, каким-то образом замаскировать удар, чтобы подделать ластик?У кого-нибудь есть предложение?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Стирание части сток в UWP

В настоящее время UWP не предоставил Erase By Point .Я думаю, что вы могли бы реализовать эту функцию с помощью специальной ручки.Подумайте, если цвет пера непрозрачный и такой же, как у InkCanvas фона. Затем используйте его, чтобы нарисовать существующий штрих, чтобы добиться эффекта стирания по точке.Для нестандартного пера вы можете обратиться к этому образцу кода . Ниже приведен критический код.

<InkToolbarCustomPenButton x:Name="calligraphyPen"
                       CustomPen="{StaticResource CalligraphicPen}"
                       Palette="{StaticResource CalligraphicPenPalette}"
                       SelectedBrushIndex="0"
                       MinStrokeWidth="4"
                       MaxStrokeWidth="10"
                       ToolTipService.ToolTip="Calligraphy pen">
    <Border>
        <Grid>
            <TextBlock AutomationProperties.AccessibilityView="Raw" FontFamily="Segoe MDL2 Assets" Text="&#xEDFB;" Canvas.ZIndex="1"/>
            <TextBlock AutomationProperties.AccessibilityView="Raw" FontFamily="Segoe MDL2 Assets" Text="&#xF0C7;" 
                       Foreground="{x:Bind calligraphyPen.SelectedBrush, Mode=OneWay}" Canvas.ZIndex="0"/>
        </Grid>
    </Border>
    <InkToolbarCustomPenButton.ConfigurationContent>
        <InkToolbarPenConfigurationControl/>
    </InkToolbarCustomPenButton.ConfigurationContent>
</InkToolbarCustomPenButton>

Обновление

Есть ли способчтобы отключить поведение ластика по умолчанию.

Ластик является внутренним инструментом по умолчанию в InkToolbar, мы не можем отключить его, но мы можем сделать его скрытым, как показано в ToolBar загруженном событии.

private void MyToolBar_Loaded(object sender, RoutedEventArgs e)
{
    var eraser = MyToolBar.GetToolButton(InkToolbarTool.Eraser);
    eraser.Visibility = Visibility.Collapsed;

}
0 голосов
/ 06 декабря 2018

Вы можете взглянуть на образец книжки-раскраски Microsoft, где вы можете стереть ячейку (Часть удара).Они создали Custom InkToolbar с заливкой, стиранием ячейки и многим другим.

https://github.com/Microsoft/Windows-appsample-coloringbook

Надеюсь, это поможет.

...