InkToolbarCustomPen Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет перо InkToolbar , для которого ведущее приложение определяет цветную палитру рукописного ввода и свойства кончика пера, такие как форма, поворот и размер.
public ref class InkToolbarCustomPen : DependencyObject
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InkToolbarCustomPen : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class InkToolbarCustomPen : DependencyObject
Public Class InkToolbarCustomPen
Inherits DependencyObject
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 Anniversary Edition (появилось в 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v3.0)
|
Примеры
Вот определение настраиваемого каллиграфического пера.
- В коде программной части сначала создается пользовательский класс пера, производный от InkToolbarCustomPen.
Пользовательский класс пера должен переопределить метод CreateInkDrawingAttributesCore и предоставить атрибуты InkDrawingAttributes для настраиваемой конфигурации. В этом примере мы настраиваем следующие атрибуты InkDrawingAttributes:
- Для элемента PenTip задано значение PenTipShape.Circle;
-
Для параметра Size задано значение Windows.Foundation.Size , равное
(strokeWidth, strokeWidth * 20)
. - Для параметра Color задано значение SolidColorBrush , выбранное на палитре, или Colors.Black по умолчанию.
- Параметр PenTipTransform (через Matrix3x2.CreateRotation) настраивается для поворота кончика пера на 45°.
using System.Numerics;
using Windows.UI;
using Windows.UI.Input.Inking;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
namespace Ink_Basic_InkToolbar
{
class CalligraphicPen : InkToolbarCustomPen
{
public CalligraphicPen()
{
}
protected override InkDrawingAttributes CreateInkDrawingAttributesCore(Brush brush, double strokeWidth)
{
InkDrawingAttributes inkDrawingAttributes = new InkDrawingAttributes();
inkDrawingAttributes.PenTip = PenTipShape.Circle;
inkDrawingAttributes.Size = new Windows.Foundation.Size(strokeWidth, strokeWidth * 20);
SolidColorBrush solidColorBrush = brush as SolidColorBrush;
if (solidColorBrush != null)
{
inkDrawingAttributes.Color = solidColorBrush.Color;
}
else
{
inkDrawingAttributes.Color = Colors.Black;
}
Matrix3x2 matrix = Matrix3x2.CreateRotation(.785f);
inkDrawingAttributes.PenTipTransform = matrix;
return inkDrawingAttributes;
}
}
}
- В разметке мы привязываем пользовательский класс пера с помощью ссылки на расширение разметки {StaticResource} в атрибуте CustomPen элемента InkToolbarCustomPenButton (кроме того, можно создать экземпляр пользовательского пера и назначить его InkToolbarCustomPenPen в коде ).
Можно использовать встроенное определение InkToolbarPenConfigurationControl (как показано здесь) или указать пользовательское определение InkToolbarPenConfigurationControl в стандартном объявлении пера InkToolbar .
Вот объявление для пользовательского пера, определенного в предыдущем фрагменте.
<!-- Set up locally defined resource dictionary. -->
<Page.Resources>
<!-- Add the custom CalligraphicPen to the page resources. -->
<local:CalligraphicPen x:Key="CalligraphicPen" />
<!-- Specify the colors for the palette of the custom pen. -->
<BrushCollection x:Key="CalligraphicPenPalette">
<SolidColorBrush Color="Blue" />
<SolidColorBrush Color="Red" />
</BrushCollection>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel x:Name="HeaderPanel" Orientation="Horizontal" Grid.Row="0">
<TextBlock x:Name="Header"
Text="Basic ink sample"
Style="{ThemeResource HeaderTextBlockStyle}"
Margin="10,0,0,0" />
</StackPanel>
<Grid Grid.Row="1">
<Image Source="Assets\StoreLogo.png" />
<InkCanvas x:Name="inkCanvas" />
<InkToolbar x:Name="inkToolbar"
VerticalAlignment="Top"
TargetInkCanvas="{x:Bind inkCanvas}">
<InkToolbarCustomPenButton
CustomPen="{StaticResource CalligraphicPen}"
MinStrokeWidth="1" MaxStrokeWidth="3" SelectedStrokeWidth="2"
Palette="{StaticResource CalligraphicPenPalette}"
SelectedBrushIndex ="1"
ToolTipService.ToolTip="Calligraphic pen">
<SymbolIcon Symbol="{x:Bind CalligraphicPenIcon}"/>
<InkToolbarCustomPenButton.ConfigurationContent>
<InkToolbarPenConfigurationControl />
</InkToolbarCustomPenButton.ConfigurationContent>
</InkToolbarCustomPenButton>
</InkToolbar>
</Grid>
</Grid>
Ниже приведено определение CalligraphicPenIcon
из MainPage.xaml.cs
файла этого примера.
namespace Ink_Basic_InkToolbar
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage_AddCustomPen : Page
{
// Icon for calligraphic pen custom button.
Symbol CalligraphicPenIcon = (Symbol)0xEDFB;
public MainPage_AddCustomPen()
{
this.InitializeComponent();
}
}
}
Комментарии
Чтобы создать определяемое приложением перо и соответствующую кнопку на панели InkToolbar, используйте этот класс в сочетании с InkToolbarCustomPenButton.
Конструкторы
InkToolbarCustomPen() |
Инициализирует новый экземпляр класса InkToolbarCustomPen . |
Свойства
Dispatcher |
Возвращает CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу. (Унаследовано от DependencyObject) |
Методы
ClearValue(DependencyProperty) |
Очищает локальное значение свойства зависимостей. (Унаследовано от DependencyObject) |
CreateInkDrawingAttributes(Brush, Double) |
Извлекает атрибуты InkToolbarCustomPen , используемые для inkToolbarPenConfigurationControl. |
CreateInkDrawingAttributesCore(Brush, Double) |
При переопределении в производном классе извлекает объект InkDrawingAttributes , используемый для указания ConfigurationContent для InkToolbarCustomPen. Этот метод не вызывается кодом приложения. |
GetAnimationBaseValue(DependencyProperty) |
Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна. (Унаследовано от DependencyObject) |
GetValue(DependencyProperty) |
Возвращает текущее действующее значение свойства зависимостей из DependencyObject. (Унаследовано от DependencyObject) |
ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если задано локальное значение. (Унаследовано от DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Регистрирует функцию уведомления для прослушивания изменений определенной DependencyProperty в этом экземпляре DependencyObject . (Унаследовано от DependencyObject) |
SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей для Объекта DependencyObject. (Унаследовано от DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова метода RegisterPropertyChangedCallback. (Унаследовано от DependencyObject) |
Применяется к
См. также раздел
- InkToolbarPenButton
- InkToolbarCustomPenButton
- DependencyObject
- Взаимодействие с помощью пера
- Добавление InkToolbar в приложение универсальной платформы Windows (UWP)
- Руководство по началу работы: поддержка рукописного ввода в приложении UWP
- Классы Windows.UI.Xaml.Controls
- Пример рукописного ввода (JavaScript)
- Руководство по началу работы: поддержка рукописного ввода в приложении UWP
- Пример раскраски
- Пример семейных заметок