Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[C# / Kinect-SDK] Hover-event maken voor handpointer

Pagina: 1
Acties:

  • madpilot0
  • Registratie: November 2008
  • Laatst online: 22-11 20:18

madpilot0

I ain't mad

Topicstarter
Hallo mensen,

Op dit moment ben ik met de Kinect SDK bezig iets te ontwikkelen voor het UMCG. Ik probeer met de ingebouwde handpointer een hover event te krijgen als ik over een tile button heen ga.

Wat ik zelf gevonden heb stackoverflow .

Als ik die routed event toevoeg krijg ik deze error:
The invocation of the constructor on type 'Microsoft.Kinect.Toolkit.Controls.KinectUserViewer' that matches the specified binding constraints threw an exception'

De betreffende xaml code:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
<k:KinectUserViewer k:KinectRegion.KinectRegion="{Binding ElementName=kinectRegion}" HorizontalAlignment="Center" Height="150" VerticalAlignment="Top" Width="150" Canvas.Left="820"/>
            <k:KinectRegion KinectSensor="{Binding Kinect, ElementName=kinectSensorChooser1}" Height="919" Width="1920" x:Name="kinectRegion" Canvas.Top="151">
<StackPanel>
                    <Grid x:Name="patientSelection" Visibility="Visible" Width="1921" Height="918" Margin="0,0,-1,0">
                        <k:KinectScrollViewer x:Name="scrollViewer" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled" Canvas.Left="10" Canvas.Top="307" Panel.ZIndex="-1" Margin="10,349,406,211.2">
                            <WrapPanel VerticalAlignment="Center" x:Name="wrapPanel" Orientation="Horizontal" ButtonBase.Click="KinectTileButtonClick">
                                <k:KinectTileButton Label="1" x:Name="patientTile" />
                            </WrapPanel>
                        </k:KinectScrollViewer>
                    </Grid>
                </StackPanel>
             </KinectRegion>


C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static readonly RoutedEvent HandPointerEnterEvent = EventManager.RegisterRoutedEvent(
    "HandPointerEnter", RoutingStrategy.Direct, typeof(EventHandler<HandPointerEventArgs>), typeof(KinectRegion));

public static readonly RoutedEvent HandPointerLeaveEvent = EventManager.RegisterRoutedEvent(
    "HandPointerLeave", RoutingStrategy.Direct, typeof(EventHandler<HandPointerEventArgs>), typeof(KinectRegion));
//Deze 2 bovenstaande regels weglaten voorkomt de error maar er wordt niks meer getriggerd

MainWindow(){
...
KinectRegion.AddHandPointerEnterHandler(this, OnHandPointerEnter);
KinectRegion.AddHandPointerEnterHandler(this, OnHandPointerEnter);
KinectRegion.SetIsPressTarget(this, true);
...
}

private void OnHandPointerEnter(object sender, HandPointerEventArgs e)
        {
            patientN.Content = "Enter";//Test labeltje
        }
        private void OnHandPointerLeave(object sender, HandPointerEventArgs e)
        {
            patientN.Content = "Leave";//Test labeltje
        }


Dus mijn bedoeling is als ik met de handpointer over een tile heen ga dat ik (in dit geval) een labeltje van text verander.

Ik hoop dat mijn vraag zo duidelijk genoeg is :)
Alvast bedankt!

  • madpilot0
  • Registratie: November 2008
  • Laatst online: 22-11 20:18

madpilot0

I ain't mad

Topicstarter
Bump

Toch benieuwd of er mensen zijn die ervaring hebben met deze error:

The invocation of the constructor on type 'Microsoft.Kinect.Toolkit.Controls.KinectUserViewer' that matches the specified binding constraints threw an exception'

  • GBCHEATER
  • Registratie: Juni 2003
  • Laatst online: 17-09-2024
Wanneer je hem in debug opstart, en het exceptie schermpje omhoog krijgt, kan je doorgraven naar de innerException. Hier staat vaak wel in wat er mis is. Styles die niet gevonden kunnen worden, of templates of weet ik wat.

Ik zou daar even kijken of je wat kan vinden.

  • madpilot0
  • Registratie: November 2008
  • Laatst online: 22-11 20:18

madpilot0

I ain't mad

Topicstarter
{"RoutedEvent Name 'HandPointerEnter' for OwnerType 'Microsoft.Kinect.Toolkit.Controls.KinectRegion' already used."}
Dit dus waarschijnlijk...

  • Lord_Nibbler
  • Registratie: December 2009
  • Laatst online: 21-11 19:01
Ik dacht dat het een copy/paste foutje was, maar op regel 10 en 11 probeer je 2 x dezelfde handler toe te voegen....

  • madpilot0
  • Registratie: November 2008
  • Laatst online: 22-11 20:18

madpilot0

I ain't mad

Topicstarter
Lord_Nibbler schreef op dinsdag 21 mei 2013 @ 12:13:
Ik dacht dat het een copy/paste foutje was, maar op regel 10 en 11 probeer je 2 x dezelfde handler toe te voegen....
Copy paste foutje :)

Ik probeer op dit moment op een andere manier die hover te ontdekken
Als de handpointer/cursor over een tile heen gaat, veranderd deze van vorm.
Dit gebeurd in de visualstatemanager(this, "mouseover", true);

Is er een mogelijkheid deze change op te vangen? (actual height e.d. werkt niet).

  • madpilot0
  • Registratie: November 2008
  • Laatst online: 22-11 20:18

madpilot0

I ain't mad

Topicstarter
Ok, ik wou er ook niet langer mee bezig zijn. Ik heb nu een soort van oplossing;

Handpointer.GetPosition > bind die vast aan je muiscursor en je kan simpelweg mouseover gebruiken ipv moeilijk doen met routed events :)
Pagina: 1