次の方法で共有


PointerPointProperties.IsPrimary プロパティ

定義

複数のポインターが登録されている場合に、入力がプライマリ ポインターからのものかどうかを示す値を取得します。

public:
 property bool IsPrimary { bool get(); };
bool IsPrimary();
public bool IsPrimary { get; }
var boolean = pointerPointProperties.isPrimary;
Public ReadOnly Property IsPrimary As Boolean

プロパティ値

Boolean

bool

True を指定すると、入力がプライマリ ポインターから取得されます。 それ以外の場合は false。

この例では、色付きの異なる省略記号を使用して、 PointerRoutedEventArgs に 関連付けられているポインターがプライマリ ポインターであるかどうかを示します。

private void MainPage_PointerPressed(object sender, PointerRoutedEventArgs e)
{
    PointerPoint pt = e.GetCurrentPoint(pointerCanvas);
    contacts[pt.PointerId] = pt;
    PointerCounter.Text = contacts.Count.ToString();

    Ellipse ellipse = new Ellipse();
    ellipse.StrokeThickness = 2;
    ellipse.Width = ellipseDiameter;
    ellipse.Height = ellipseDiameter;
    ellipse.Tag = pt.PointerId;
    TranslateTransform translate = new TranslateTransform();
    translate.X = pt.Position.X - ellipseDiameter / 2;
    translate.Y = pt.Position.Y - ellipseDiameter / 2;
    ellipse.RenderTransform = translate;
    pointerCanvas.Children.Add(ellipse);

    if (pt.Properties.IsPrimary == true)
    {
        primaryPointer = pt;
        primaryEllipse = ellipse;
        primaryEllipse.Scale(scaleX: 2, scaleY: 2, centerX: 0, centerY: 0).Start();
        ellipse.Stroke = new SolidColorBrush(Windows.UI.ColorHelper.FromArgb(255, 255, 0, 0));

        // Create the transform
        ScaleTransform scaleTransform = new ScaleTransform();
        scaleTransform.ScaleX = primaryEllipse.Width * 1.25;
        scaleTransform.ScaleY = primaryEllipse.Height * 1.25;
        primaryEllipse.RenderTransform = scaleTransform;

        PointerPrimary.Text = pt.PointerId.ToString();
    }
    else
        ellipse.Stroke = new SolidColorBrush(Windows.UI.ColorHelper.FromArgb(255, 0, 0, 255));

    e.Handled = true;
}

注釈

プライマリ ポインターは、現在の操作における 1 つのポインター (タッチ、マウス、ペン/スタイラス) です。

マウスの場合、マウス イベントを生成できる唯一のポインターはプライマリ ポインターです。

タッチの場合 (複数の同時ポインターが存在する可能性があります)、プライマリ ポインターは対話の最初の接触です。 最初の UIElement.PointerPressed イベントの後の操作では、IsPrimary は false を返します。

新しいプライマリ ポインターは、その操作のすべての連絡先が削除され、その後新しい連絡先が検出された場合にのみ登録されます。

プライマリ ポインターは、他のポインターでは使用できないアクションを実行できます。 たとえば、プライマリ ポインターが非アクティブなウィンドウに WM_POINTERDOWN メッセージを生成すると、 WM_POINTERACTIVATE メッセージもそのウィンドウに送信されます。

適用対象