InkToolbarCustomPen Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen InkToolbar-Stift dar, für den die Freihandfarbpalette und die Stiftspitzeneigenschaften wie Form, Drehung und Größe von der Host-App definiert werden.
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
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 Anniversary Edition (eingeführt in 10.0.14393.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v3.0)
|
Beispiele
Im Folgenden finden Sie eine Definition eines benutzerdefinierten kalligrafischen Stifts.
- Im CodeBehind erstellen wir zunächst eine benutzerdefinierte Stiftklasse, die von InkToolbarCustomPen abgeleitet ist.
Eine benutzerdefinierte Stiftklasse muss die CreateInkDrawingAttributesCore-Methode überschreiben und die InkDrawingAttributes für die benutzerdefinierte Konfiguration bereitstellen. In diesem Beispiel passen wir die folgenden InkDrawingAttributes an:
- PenTip ist auf PenTipShape.Circle festgelegt;
-
Die Größe ist auf windows.Foundation.Size von
(strokeWidth, strokeWidth * 20)
festgelegt. - Die Farbe ist auf den in der Palette ausgewählten SolidColorBrush oder standardmäßig auf Colors.Black festgelegt.
- PenTipTransform (über Matrix3x2.CreateRotation) ist so festgelegt, dass die Stiftspitze um 45° gedreht wird.
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;
}
}
}
- Im Markup binden wir dann unsere benutzerdefinierte Stiftklasse mithilfe eines {StaticResource}-Markuperweiterungsverweis im CustomPen-Attribut des InkToolbarCustomPenButton-Elements (alternativ können Sie den benutzerdefinierten Stift instanziieren und ihn im Code InkToolbarCustomPenButton.CustomPen zuweisen).
Sie können das integrierte InkToolbarPenConfigurationControl verwenden (wie hier gezeigt), oder Sie können eine benutzerdefinierte InkToolbarPenConfigurationControl-Definition in der standardmäßigen InkToolbar-Stiftdeklaration angeben.
Dies ist die Deklaration für den benutzerdefinierten Stift, der im vorherigen Codeausschnitt definiert wurde.
<!-- 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>
Dies ist die Definition von CalligraphicPenIcon
aus der MainPage.xaml.cs
Datei dieses Beispiels.
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();
}
}
}
Hinweise
Um einen app-definierten Stift und eine entsprechende Schaltfläche auf der InkToolbar zu erstellen, verwenden Sie diese Klasse in Verbindung mit InkToolbarCustomPenButton.
Konstruktoren
InkToolbarCustomPen() |
Initialisiert eine neue instance der InkToolbarCustomPen-Klasse. |
Eigenschaften
Dispatcher |
Ruft den CoreDispatcher ab, dem dieses Objekt zugeordnet ist. CoreDispatcher stellt eine Funktion dar, die auf das DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird. (Geerbt von DependencyObject) |
Methoden
ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
CreateInkDrawingAttributes(Brush, Double) |
Ruft die Für inkToolbarPenConfigurationControl verwendeten InkToolbarCustomPenConfigurationControl-Attribute ab. |
CreateInkDrawingAttributesCore(Brush, Double) |
Ruft beim Überschreiben in einer abgeleiteten Klasse ein InkDrawingAttributes-Objekt ab, das zum Angeben von ConfigurationContent für ein InkToolbarCustomPen verwendet wird. Diese Methode wird nicht vom Anwendungscode aufgerufen. |
GetAnimationBaseValue(DependencyProperty) |
Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, der in Fällen gilt, in denen eine Animation nicht aktiv ist. (Geerbt von DependencyObject) |
GetValue(DependencyProperty) |
Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück. (Geerbt von DependencyObject) |
ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist. (Geerbt von DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für dieses DependencyObject-instance. (Geerbt von DependencyObject) |
SetValue(DependencyProperty, Object) |
Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest. (Geerbt von DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Bricht eine Änderungsbenachrichtigung ab, die zuvor durch Aufrufen von RegisterPropertyChangedCallback registriert wurde. (Geerbt von DependencyObject) |
Gilt für:
Weitere Informationen
- InkToolbarPenButton
- InkToolbarCustomPenButton
- DependencyObject
- Zeichen- und Eingabestiftinteraktionen
- Hinzufügen einer InkToolbar zu einer Universelle Windows-Plattform-App (UWP)
- Tutorial zu den ersten Schritten: Freihandunterstützung in Ihrer UWP-App
- Windows.UI.Xaml.Controls-Klassen
- Freihandbeispiel (JavaScript)
- Tutorial zu den ersten Schritten: Freihandunterstützung in Ihrer UWP-App
- Malbuchbeispiel
- Familiennotizbeispiel