InkToolbarCustomPen Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma caneta InkToolbar para a qual as propriedades de dica de caneta e paleta de cores de tinta, como forma, rotação e tamanho, são definidas pelo aplicativo host.
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
- Herança
- Atributos
Requisitos do Windows
Família de dispositivos |
Windows 10 Anniversary Edition (introduzida na 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v3.0)
|
Exemplos
Aqui está uma definição de uma caneta calligraphic personalizada.
- No code-behind, primeiro criamos uma classe de caneta personalizada derivada de InkToolbarCustomPen.
Uma classe de caneta personalizada deve substituir o método CreateInkDrawingAttributesCore e fornecer InkDrawingAttributes para a configuração personalizada. Neste exemplo, personalizamos os seguintes InkDrawingAttributes:
- PenTip é definido como PenTipShape.Circle;
-
O tamanho é definido como um Windows.Foundation.Size de
(strokeWidth, strokeWidth * 20)
. - A cor é definida como o SolidColorBrush selecionado na paleta ou Colors.Black por padrão.
- PenTipTransform (por meio de Matrix3x2.CreateRotation) é definido para girar a ponta da caneta em 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;
}
}
}
- Na marcação, associamos nossa classe de caneta personalizada usando uma referência de extensão de marcação {StaticResource} no atributo CustomPen do elemento InkToolbarCustomPenButton (como alternativa, você pode instanciar a caneta personalizada e atribuí-la a InkToolbarCustomPenButton.CustomPen no código).
Você pode usar o InkToolbarPenConfigurationControl interno (conforme mostrado aqui) ou pode especificar uma definição inkToolbarPenConfigurationControl personalizada na declaração de caneta InkToolbar padrão.
Aqui está a declaração para a caneta personalizada definida no snippet anterior.
<!-- 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>
Aqui está a definição de CalligraphicPenIcon
do MainPage.xaml.cs
arquivo deste exemplo.
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();
}
}
}
Comentários
Para criar uma caneta definida pelo aplicativo e um botão correspondente no InkToolbar, use essa classe em conjunto com InkToolbarCustomPenButton.
Construtores
InkToolbarCustomPen() |
Inicializa uma nova instância da classe InkToolbarCustomPen . |
Propriedades
Dispatcher |
Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar o DependencyObject no thread da interface do usuário, mesmo que o código seja iniciado por um thread que não seja da interface do usuário. (Herdado de DependencyObject) |
Métodos
ClearValue(DependencyProperty) |
Limpa o valor local de uma propriedade de dependência. (Herdado de DependencyObject) |
CreateInkDrawingAttributes(Brush, Double) |
Recupera os atributos InkToolbarCustomPen usados para um InkToolbarPenConfigurationControl. |
CreateInkDrawingAttributesCore(Brush, Double) |
Quando substituído em uma classe derivada, recupera um objeto InkDrawingAttributes usado para especificar ConfigurationContent para um InkToolbarCustomPen. Esse método não é chamado pelo código do aplicativo. |
GetAnimationBaseValue(DependencyProperty) |
Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa. (Herdado de DependencyObject) |
GetValue(DependencyProperty) |
Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject. (Herdado de DependencyObject) |
ReadLocalValue(DependencyProperty) |
Retorna o valor local de uma propriedade de dependência, se um valor local for definido. (Herdado de DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nessa instância dependencyObject . (Herdado de DependencyObject) |
SetValue(DependencyProperty, Object) |
Define o valor local de uma propriedade de dependência em um DependencyObject. (Herdado de DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback. (Herdado de DependencyObject) |
Aplica-se a
Confira também
- InkToolbarPenButton
- InkToolbarCustomPenButton
- DependencyObject
- Interações por caneta
- Adicionar um InkToolbar a um aplicativo UWP (Plataforma Universal do Windows)
- Tutorial de Introdução: oferecer suporte à tinta em seu aplicativo UWP
- Classes Windows.UI.Xaml.Controls
- Exemplo de tinta (JavaScript)
- Tutorial de Introdução: oferecer suporte à tinta em seu aplicativo UWP
- Exemplo de livro de colorir
- Exemplo de anotações da família