InkToolbarCustomPen Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un lápiz InkToolbar para el que la paleta de colores de lápiz y las propiedades de punta del lápiz, como la forma, la rotación y el tamaño, se definen mediante la aplicación 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
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 Anniversary Edition (se introdujo en la versión 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v3.0)
|
Ejemplos
Esta es una definición de un lápiz caligráfico personalizado.
- En el código subyacente, primero creamos una clase de lápiz personalizada derivada de InkToolbarCustomPen.
Una clase de lápiz personalizada debe invalidar el método CreateInkDrawingAttributesCore y proporcionar inkDrawingAttributes para la configuración personalizada. En este ejemplo, personalizamos los siguientes atributos InkDrawingAttributes:
- PenTip se establece en PenTipShape.Circle;
-
Size se establece en windows.Foundation.Size de
(strokeWidth, strokeWidth * 20)
. - Color se establece en el SolidColorBrush seleccionado en la paleta o Colors.Black de forma predeterminada.
- PenTipTransform (a través de Matrix3x2.CreateRotation) se establece para girar la punta del lápiz en 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;
}
}
}
- En el marcado, enlazamos nuestra clase de lápiz personalizada mediante una referencia de extensión de marcado {StaticResource} en el atributo CustomPen del elemento InkToolbarCustomPenButton (como alternativa, puede crear una instancia del lápiz personalizado y asignarlo a InkToolbarCustomPenButton.CustomPen en el código).
Puede usar el control InkToolbarPenConfigurationControl integrado (como se muestra aquí) o puede especificar una definición inkToolbarPenConfigurationControl personalizada en la declaración estándar del lápiz InkToolbar .
Esta es la declaración del lápiz personalizado definido en el fragmento de código 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>
Esta es la definición de CalligraphicPenIcon
del MainPage.xaml.cs
archivo de este ejemplo.
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();
}
}
}
Comentarios
Para crear un lápiz definido por la aplicación y el botón correspondiente en InkToolbar, use esta clase junto con InkToolbarCustomPenButton.
Constructores
InkToolbarCustomPen() |
Inicializa una nueva instancia de la clase InkToolbarCustomPen . |
Propiedades
Dispatcher |
Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede acceder a DependencyObject en el subproceso de la interfaz de usuario, incluso si un subproceso que no es de interfaz de usuario inicia el código. (Heredado de DependencyObject) |
Métodos
ClearValue(DependencyProperty) |
Borra el valor local de una propiedad de dependencia. (Heredado de DependencyObject) |
CreateInkDrawingAttributes(Brush, Double) |
Recupera los atributos InkToolbarCustomPen usados para inkToolbarPenConfigurationControl. |
CreateInkDrawingAttributesCore(Brush, Double) |
Cuando se invalida en una clase derivada, recupera un objeto InkDrawingAttributes utilizado para especificar ConfigurationContent para un InkToolbarCustomPen. El código de aplicación no llama a este método. |
GetAnimationBaseValue(DependencyProperty) |
Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa. (Heredado de DependencyObject) |
GetValue(DependencyProperty) |
Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject. (Heredado de DependencyObject) |
ReadLocalValue(DependencyProperty) |
Devuelve el valor local de una propiedad de dependencia, si se establece un valor local. (Heredado de DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject . (Heredado de DependencyObject) |
SetValue(DependencyProperty, Object) |
Establece el valor local de una propiedad de dependencia en dependencyObject. (Heredado de DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Cancela una notificación de cambio registrada anteriormente mediante una llamada a RegisterPropertyChangedCallback. (Heredado de DependencyObject) |
Se aplica a
Consulte también
- InkToolbarPenButton
- InkToolbarCustomPenButton
- DependencyObject
- Interacciones de pluma y lápiz
- Agregar inkToolbar a una aplicación de Plataforma universal de Windows (UWP)
- Tutorial de introducción: Compatibilidad con la entrada de lápiz en la aplicación para UWP
- Clases Windows.UI.Xaml.Controls
- Ejemplo de entrada de lápiz (JavaScript)
- Tutorial de introducción: Compatibilidad con la entrada de lápiz en la aplicación para UWP
- Muestra de libro para colorear
- Muestra de notas familiares