Announcement

Collapse
No announcement yet.

WPF Control Handle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WPF Control Handle

    Hallo!

    Ich habe ein kleines Problem... Ich will die Webcam in meine MVVM Anwendung einbinden mittels AviCap32.dll. Diese braucht das HWND des Fensters/Controls wo das Bild der Webcam angezeigt werden soll. Da Das View nix vom Viewmodel weiß und umgekehrt habe ich IM CODE (ViewModel) ein Image-Control erzeugt (An dessen Source wird das View sich später binden usw...)
    Leider hat folgender Befehl immer NULL:
    PresentationSource.FromVisual()

    Wie bekomme ich das HWND von einem INCODE erzeugtem Control welches nicht sichtbar ist und auch nie sein wird?

    Momentan gebe ich Application.Current.MainWindow an für die HWND, das funktioniert und entspricht denke ich auch den MVVM-Anforderungen, oder?


    Danke!!!
    Zuletzt editiert von Flo_Plus; 31.05.2012, 22:50.
    Die Taschenlampe!

    Die perfekte Taschenlampe für Ihr Windows Phone!

    - Die APP steuert die echte Blitz-LED an und versorgt Sie mit 100% Leistung!
    - Zudem zeigt die Live-Kachel den aktuellen Akkustand des Telefons an!


    Hier gehts zu APP!

  • #2
    MVVM ist immer nur ein vorgeschlagenes Muster. Wenn es wirklich nicht anders geht darf man mit Mustern auch mal brechen sofern dies nicht zur Regel wird.
    Ich würde das ganze vielleicht noch in ein Interface und eine Wrapperklasse kapseln. Ich mag keine statics in Code der potentiell zu testen wäre (davon gehe ich bei ViewModels mal aus).

    Comment


    • #3
      Hallo,

      Da Das View nix vom Viewmodel weiß und umgekehrt habe ich IM CODE (ViewModel) ein Image-Control erzeugt
      Die View kennt das ViewModel i.d.R. schon, sonst wäre das VM ja umsonst. Im ViewModel sollte nie ein Control erzeugt werden - unabhängig von der eigenen Anpassung des Musters. UI-Zeugs hat nur in der UI-Schicht was verloren und sonst nirgends.

      WPF-Controls haben keine Handels wie dies bei WinForms/GDI+ üblich war. Wenn du trotzdem ein Handle benötigst schau dir mal "WinForms in WPF" an. Über diesem Wege kannst du dann ein Handle erhalten.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment

      Working...
      X