Стирание части сток в UWP
Я использую новую технологию Ink для Windows 10, используя InkCanvas/InkPresenter в UWP. Рендеринг чернил действительно хорош, за исключением того, что я не могу стереть только часть обводки. Я смотрю на OneNote, который, как я предполагаю, использует ту же технологию, и они предлагают стирать часть удара. Я знаю, что это было невозможно, когда впервые был представлен InkCanvas/InkPresenter, но мне было интересно, есть ли способ достичь этого? Может, каким-то образом замаскировать удар, чтобы подделать ластик? У кого-нибудь есть предложение?
2 ответа
Вы можете взглянуть на образец книжки-раскраски Microsoft, где вы можете стереть ячейку (Часть удара). Они создали пользовательский InkToolbar с заливкой, стиранием ячейки и многим другим.
https://github.com/Microsoft/Windows-appsample-coloringbook
Надеюсь, поможет.
Стирание части сток в 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;
}