capture Tag visualizer contact event

為{幸葍}努か 提交于 2019-12-25 04:56:08

问题


I'm developing Microsoft Surface(pixelsense) App using TagVisualizer object I'm looking for a method to capture tagEnter, tagLeave event on other UI elements such as a button. For example in following XAML code I want to capture an event when TagVisualizer enters the boundary of "Button1".

  <Grid>
    <s:TagVisualizer 
        Name="MaintagVisualizer" VisualizationAdded="MaintagVisualizer_VisualizationAdded" 
        VerticalAlignment="Stretch" 
        HorizontalAlignment="Stretch" 
        HorizontalContentAlignment="Center" 
        Height="Auto" Width="Auto"
        VerticalContentAlignment="Center" >

        <s:TagVisualizer.Definitions>
            <s:TagVisualizationDefinition LostTagTimeout="2000" MaxCount="1" Value="0x1" Source="TagVisualizationEllipse.xaml" />
        </s:TagVisualizer.Definitions>

        <s:SurfaceButton Name="Button1" HorizontalAlignment="Left" VerticalAlignment="Top" Content="test" Width="120" Height="40" Margin="20" ></s:SurfaceButton>

    </s:TagVisualizer>
</Grid>

回答1:


I know this is an old post, but I thought I would put something on the record to help others.

I'm working on something similar...trying to capture the touch events (down, up, etc) for when a tag is placed over the control called myMap.

Here is the solution I developed: first, a touch listener for the window:

public SurfaceWindow1()
    {
         Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
    }

Then the handler:

void Touch_FrameReported(object sender, TouchFrameEventArgs e)
    {

        if (this.myMap != null)
        {
            string active_capture = "";

            foreach (TouchPoint _touchPoint in e.GetTouchPoints(this.myMap))
            {

                if (_touchPoint.TouchDevice.Captured != null)
                {
                    active_capture = _touchPoint.TouchDevice.Captured.ToString();
                }

                if (active_capture.Contains("TagVisualizer"))
                {
                    //This touch was captured by the tag visualizer, therefore it must be a tag
                   if (_touchPoint.Action == TouchAction.Down)
                    {
                        TagTouchId = _touchPoint.TouchDevice.Id;
                        //now you can do whatever you like with the TouchDevice ID
                    }
                }
            }
        }
    }

You could probably do the same thing with a button control. At the least this can get you started.



来源:https://stackoverflow.com/questions/13076280/capture-tag-visualizer-contact-event

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!