当前位置: 首页>>代码示例>>C#>>正文


C# Contact.GetPosition方法代码示例

本文整理汇总了C#中Contact.GetPosition方法的典型用法代码示例。如果您正苦于以下问题:C# Contact.GetPosition方法的具体用法?C# Contact.GetPosition怎么用?C# Contact.GetPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Contact的用法示例。


在下文中一共展示了Contact.GetPosition方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetPixelColor

        //==========================================================//
        /// <summary>
        /// Gets the color of a specific pixel.
        /// </summary>
        /// <param name="pt">The point from which to get a color.</param>
        /// <returns>The color of the point.</returns>
        private System.Windows.Media.Color GetPixelColor(Contact contact)
        {
            // Translate the point according to whatever transforms are on the color wheel.
            Point rawPoint = contact.GetPosition(ColorWheel);
            Point transformedPoint = ColorWheel.RenderTransform.Transform(rawPoint);

            // The point is outside the color wheel. Return black.
            if (transformedPoint.X < 0 || transformedPoint.X >= ColorWheel.Source.Width ||
                transformedPoint.Y < 0 || transformedPoint.Y >= ColorWheel.Source.Height)
            {
                return Colors.Black;
            }

            // The point is inside the color wheel. Find the color at the point.
            CroppedBitmap cb = new CroppedBitmap(ColorWheel.Source as BitmapSource, new Int32Rect((int)transformedPoint.X, (int)transformedPoint.Y, 1, 1));
            byte[] pixels = new byte[4];
            cb.CopyPixels(pixels, 4, 0);
            return Color.FromRgb(pixels[2], pixels[1], pixels[0]);
        }
开发者ID:davidalmas,项目名称:Samples,代码行数:25,代码来源:SurfaceWindowApp.xaml.cs

示例2: UpdateOrientationArrow

        /// <summary>
        /// Rotate the arrow to demonstrate orientation.
        /// </summary>
        /// <param name="contact">the contact to diagram</param>
        private void UpdateOrientationArrow(Contact contact)
        {
            bool isTag = contact.IsTagRecognized;

            UIElement relativeTo = this;
            double? contactOrientation = contact.GetOrientation(relativeTo);

            // Only show orientation arrow if this contact is recognized as a tag
            // and there is orientation data available.
            if (isTag && contactOrientation != null)
            {
                // Show the arrow.
                OrientationArrow.Visibility = Visibility.Visible;

                // Set the arrow orientation.
                ArrowRotateTransform.Angle = (double)contactOrientation;

                // Set the arrow position.
                Point position = contact.GetPosition(relativeTo);
                ArrowTranslateTransform.X = position.X;
                ArrowTranslateTransform.Y = position.Y;
            }
            else
            {
                // Hide the arrow.
                OrientationArrow.Visibility = Visibility.Hidden;
            }
        }
开发者ID:blender,项目名称:Codeine,代码行数:32,代码来源:ContactDiagram.xaml.cs

示例3: UpdateDescription

        /// <summary>
        /// Update the text description with the most recent property values. Position
        /// the textbox so that it does not go offscreen (outside parentGrid). Also
        /// position the connecting line between the contact and the textbox.
        /// </summary>
        /// <param name="parentGrid">the container for this diagram-
        /// description text will not go outside of this container's bounds</param>
        /// <param name="contact">the contact to diagram</param>
        /// <param name="showContactInfo">Whether or not the contact info will be visible</param>
        private void UpdateDescription(Grid parentGrid, Contact contact, bool showContactInfo)
        {
            // Show or hide the contact info based on showContactInfo
            Description.Visibility = showContactInfo ? Visibility.Visible : Visibility.Hidden;
            ConnectingLine.Visibility = showContactInfo ? Visibility.Visible : Visibility.Hidden;

            if(!showContactInfo)
            {
                // Don't need to do the calculations if info isn't going to be shown
                return;
            }

            Point position = contact.GetPosition(parentGrid);
            Rect bounds = new Rect(0, 0, parentGrid.ActualWidth, parentGrid.ActualHeight);
            // Determine where around the contact the description should be displayed.
            // The default position is above and to the left.
            bool isAbove = true;
            bool isLeft = true;

            // Description text for tags is different than non-tags
            double descriptionXDistance;
            bool isTag = contact.IsTagRecognized;

            if (isTag)
            {
                descriptionXDistance = tagDescriptionXDistance;
            }
            else
            {
                descriptionXDistance = nonTagDescriptionXDistance;
            }

            // Put description below contact if default location is out of bounds.
            Rect upperLeftBounds = GetDescriptionBounds(position, isAbove, isLeft, descriptionXDistance, descriptionYDistance);
            if (upperLeftBounds.Top < bounds.Top)
            {
                isAbove = false;
            }

            // Put description to the right of the contact if default location is out of bounds.
            if (upperLeftBounds.Left < bounds.Left)
            {
                isLeft = false;
            }

            // Calculate the final bounds that will be used for the textbox position
            // based on the updated isAbove and isLeft values.
            Rect finalBounds = GetDescriptionBounds(position, isAbove, isLeft, descriptionXDistance, descriptionYDistance);
            Canvas.SetLeft(Description, finalBounds.Left);
            Canvas.SetTop(Description, finalBounds.Top);

            // Set the justification of the type in the textbox based
            // on which side of the contact the textbox is on.
            if(isLeft)
            {
                Description.TextAlignment = TextAlignment.Right;
            }
            else
            {
                Description.TextAlignment = TextAlignment.Left;
            }

            // Create the description string.
            StringBuilder descriptionText = new StringBuilder();
            descriptionText.AppendLine(String.Format(CultureInfo.InvariantCulture, "RecognizedTypes: {0}", GetContactTypeString(contact)));
            descriptionText.AppendLine(String.Format(CultureInfo.InvariantCulture, "Id: {0}", contact.Id));

            // Use the "f1" format specifier to limit the amount of decimal positions shown.
            descriptionText.AppendLine(String.Format(CultureInfo.InvariantCulture, "X: {0}", position.X.ToString("f1", CultureInfo.InvariantCulture)));
            descriptionText.AppendLine(String.Format(CultureInfo.InvariantCulture, "Y: {0}", position.Y.ToString("f1", CultureInfo.InvariantCulture)));

            // Display "null" for Orientation if the contact does not have an orientation value.
            string orientationString;
            double? contactOrientation = contact.GetOrientation(parentGrid);
            if(contactOrientation == null)
            {
                orientationString = "null";
            }
            else
            {
                orientationString = ((double)contactOrientation).ToString("f1", CultureInfo.InvariantCulture);
            }
            descriptionText.AppendLine(String.Format(CultureInfo.InvariantCulture, "Orientation: {0}", orientationString));

            if (contact.Tag.Type == TagType.Byte)
            {
                descriptionText.AppendLine("Value: " + contact.Tag.Byte.Value.ToString("X", CultureInfo.InvariantCulture));
            }
            else if (contact.Tag.Type == TagType.Identity)
            {
                descriptionText.AppendLine("Series: " + contact.Tag.Identity.Series.ToString("x16", CultureInfo.InvariantCulture));
//.........这里部分代码省略.........
开发者ID:blender,项目名称:Codeine,代码行数:101,代码来源:ContactDiagram.xaml.cs

示例4: addContact

 public void addContact(Contact c, Grid parentGrid)
 {
     if(c.Tag.Type == TagType.Byte)
     {
         Point p = c.GetPosition(parentGrid);
         double orientation = c.GetOrientation(parentGrid);
         ContactDescriptor desc = new ContactDescriptor(c.Tag.Byte.Value, (int)p.X, (int) p.Y,(int) (orientation*10.0));
         contactDictionary.Add(c, desc);
         try
         {
             deviceInfoDictionary.Add(c.Tag.Byte.Value, new DeviceInformation(c.Tag.Byte.Value, ""));
         }catch (Exception e) {
             Console.WriteLine("Device With Byte Value %d already in deviceInfoDictionary", c.Tag.Byte.Value);
             Console.WriteLine(e.ToString());
         }
     }
 }
开发者ID:blender,项目名称:Codeine,代码行数:17,代码来源:ContacDataController.cs

示例5: updateContact

 public void updateContact(Contact c, Grid parentGrid)
 {
     if (c.Tag.Type == TagType.Byte)
        {
        ContactDescriptor desc;
        if (contactDictionary.Remove(c))
        {
            Point p = c.GetPosition(parentGrid);
            desc = new ContactDescriptor(c.Tag.Byte.Value, (int)p.X, (int)p.Y, (int)(c.GetOrientation(parentGrid)));
            contactDictionary.Add(c, desc);
        }
        }
 }
开发者ID:blender,项目名称:Codeine,代码行数:13,代码来源:ContacDataController.cs

示例6: OnEllipseContactDown

        private void OnEllipseContactDown(object sender, ContactEventArgs e)
        {
            Debug.WriteLineIf(DebugSettings.DEBUG_CALIBRATION, "OnEllipseContactDown: this.Visualizer == null?: " + (_parent.Visualizer == null));
            // Capture to the ellipse.
            e.Contact.Capture(sender as Ellipse);

            // Remember this contact if a contact has not been remembered already.
            // This contact is then used to move the ellipse around.
            if (_ellipseControlContact == null)
            {
                _ellipseControlContact = e.Contact;

                // Remember where this contact took place.
                _lastContactPoint = _ellipseControlContact.GetPosition(this.MainCanvas);
            }

            // Mark this event as handled.
            e.Handled = true;
        }
开发者ID:CodeByBerglund,项目名称:nai-framework,代码行数:19,代码来源:CalibrationUserControl.xaml.cs


注:本文中的Contact.GetPosition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。