Стирание части сток в 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="" Canvas.ZIndex="1"/>
<TextBlock AutomationProperties.AccessibilityView="Raw" FontFamily="Segoe MDL2 Assets" Text=""
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;
}