Handle sur fenêtre WPF pour manipulation joystick via directx
Hello.
je tente de manipuler un joystick avec l'api directX.
Pour ce faire, j'ai besoin d'un pointeur sur ma fenêtre, obtenu comme ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| System.Windows.Controls.Control w = null;
w = vuePTZ.Parent as System.Windows.Controls.Control;
while ((w is System.Windows.Window) == false)
{
w = w.Parent as System.Windows.Controls.Control;
}
if (w == null)
throw new Exception("Impossible d'obtenir la window principale");
joystickDevice.SetCooperativeLevel(new WindowInteropHelper(w as System.Windows.Window).Handle, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive); |
Le code ce cette classe est appelé dans le constructeur d'un UserControl, qui se passe lui-même en référence (mon vuePTZ). Or il apparait que la propriété Parent de ce Control est défini à null, (alors qu'il est imbriqué dans un autre Contrôle, imbriqué dans la window).
Mes questions :
- Pourquoi est-il à null, WPF ne l'initialise pas ?
- Y a-t-il un moyen moyen de récupérer un Handle sur la fenêtre ? Sinon comment être sûr que l'on aura la propriété Parent renseignée ?
Merci :)