InkToolbarCustomPen クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
インク カラー パレットとペン先のプロパティ (図形、回転、サイズなど) がホスト アプリによって定義される 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 に設定されています。
-
サイズ は、 の Windows.Foundation.Size
(strokeWidth, strokeWidth * 20)
に設定されます。 - 色 は、パレットから選択した 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;
}
}
}
- マークアップでは、InkToolbarCustomPenButton 要素の CustomPen 属性で {StaticResource} マークアップ拡張参照を使用してカスタム ペン クラスをバインドします (または、カスタム ペンをインスタンス化し、コードで InkToolbarCustomPenButton.CustomPen に割り当てることができます)。
組み込みの InkToolbarPenConfigurationControl (次に示すように) を使用することも、標準 の InkToolbar ペン宣言でカスタム InkToolbarPenConfigurationControl 定義 を 指定することもできます。
前のスニペットで定義したカスタム ペンの宣言を次に示します。
<!-- 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 は、コードが UI 以外のスレッドによって開始された場合でも、UI スレッド上の DependencyObject にアクセスできる機能を表します。 (継承元 DependencyObject) |