PointerPointProperties.IsPrimary 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个值,该值指示在注册多个指针时输入是否来自主指针。
public:
property bool IsPrimary { bool get(); };
bool IsPrimary();
public bool IsPrimary { get; }
var boolean = pointerPointProperties.isPrimary;
Public ReadOnly Property IsPrimary As Boolean
属性值
Boolean
bool
如此 如果输入来自主指针。 否则为 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;
}
注解
主指针是当前交互中 (触摸、鼠标和笔/触笔) 的单个指针。
对于鼠标,主指针是可为其生成鼠标事件的唯一指针。
对于可以有多个并发指针) 的触摸 (,主指针是交互中的第一个触点。 对于第一个 UIElement.PointerPressed 事件后的任何交互,IsPrimary 返回 false。
仅当删除该交互中的所有联系人并随后检测到新联系人时,才会注册新的主指针。
主指针可以执行其他指针不可用的操作。 例如,当主指针在非活动窗口上生成 WM_POINTERDOWN 消息时, WM_POINTERACTIVATE 消息也会发送到该窗口。