WinFuture-Forum.de: wpf (vb.net): system.drawing.graphics nicht definiert!? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

wpf (vb.net): system.drawing.graphics nicht definiert!?


#1 Mitglied ist offline   ::YC Tech:: 

  • Gruppe: aktive Mitglieder
  • Beiträge: 170
  • Beigetreten: 01. Oktober 11
  • Reputation: 0
  • Geschlecht:Männlich
  • Interessen:An PCs basteln bis der IT kommt :D

geschrieben 28. Januar 2013 - 17:46

moin, alle programmier!

ich versuche gerade, ne wpf-app mit aero-glass (vergrößerter border) zu schreiben. dabei hab ich mich an diesen msdn-post gehalten. allerdings hab ich jetzt diesen fehler:

Zitat

Der Typ "System.Drawing.Graphics" ist nicht definiert.

den code hab ich mit instant vb übersetzt, weil er im msdn-post nur in c# stand:
' Obtain the window handle for WPF application
            Dim mainWindowPtr As IntPtr = (New WindowInteropHelper(Me)).Handle
            Dim mainWindowSrc As HwndSource = HwndSource.FromHwnd(mainWindowPtr)
            mainWindowSrc.CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0)

            ' Get System Dpi
            Dim desktop As System.Drawing.Graphics = System.Drawing.Graphics.FromHwnd(mainWindowPtr)
            Dim DesktopDpiX As Single = desktop.DpiX
            Dim DesktopDpiY As Single = desktop.DpiY

            ' Set Margins
            Dim margins As New MARGINS()

            ' Extend glass frame into client area
            ' Note that the default desktop Dpi is 96dpi. The  margins are
            ' adjusted for the system Dpi.
            margins.bsLeft = Convert.ToInt32(5 * (DesktopDpiX / 96))
            margins.bsRight = Convert.ToInt32(5 * (DesktopDpiX / 96))
            margins.bsTop = Convert.ToInt32((CInt(Fix(topBar.ActualHeight)) + 5) * (DesktopDpiX / 96))
            margins.bsBottom = Convert.ToInt32(5 * (DesktopDpiX / 96))

            Dim hr As Integer = DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, margins)
            '
            If hr < 0 Then

            End If


originaler code:
// Obtain the window handle for WPF application
      IntPtr mainWindowPtr = new WindowInteropHelper(this).Handle;
      HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr);
      mainWindowSrc.CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0);

      // Get System Dpi
      System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(mainWindowPtr);
      float DesktopDpiX = desktop.DpiX;
      float DesktopDpiY = desktop.DpiY;

      // Set Margins
      NonClientRegionAPI.MARGINS margins = new NonClientRegionAPI.MARGINS();

      // Extend glass frame into client area
      // Note that the default desktop Dpi is 96dpi. The  margins are
      // adjusted for the system Dpi.
      margins.cxLeftWidth = Convert.ToInt32(5 * (DesktopDpiX / 96));
      margins.cxRightWidth = Convert.ToInt32(5 * (DesktopDpiX / 96));
      margins.cyTopHeight = Convert.ToInt32(((int)topBar.ActualHeight + 5) * (DesktopDpiX / 96));
      margins.cyBottomHeight = Convert.ToInt32(5 * (DesktopDpiX / 96));

      int hr = NonClientRegionAPI.DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins);
      //
      if (hr < 0)
      {
         //DwmExtendFrameIntoClientArea Failed
      }

Dieser Beitrag wurde von ::YC Tech:: bearbeitet: 28. Januar 2013 - 17:48

0

Anzeige



#2 Mitglied ist offline   Pitanium 

  • Gruppe: Mitglieder
  • Beiträge: 9
  • Beigetreten: 07. Dezember 12
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:Programmierung

geschrieben 29. Januar 2013 - 03:43

Ohne das ich mich auskenne. Ich habe von VB und C# kaum Ahnung. Aber es sieht in dem hier gezeigten Quellcode so aus, als ob er die Kommentierte Zeile
// Get System Dpi
aus C# in VB nicht als Kommentar erkennt. Ich denke es liegt daran, dass der obere Kommentar, der über mehrere Zeilen geht nicht korrekt abgeschlossen wird. Überprüfe das mal. Mehr kann ich nicht sagen.
Computer helfen uns Probleme zu lösen, die wir ohne ihnen gar nicht hätten.

Eingefügtes Bild
0

#3 Mitglied ist offline   evil.baschdi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.639
  • Beigetreten: 11. Februar 07
  • Reputation: 56
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1, breites #Neuland
  • Interessen:IT, Musik

geschrieben 29. Januar 2013 - 07:21

hat damit überhaupt nichts zu tun, was hier als kommentar oder nicht erkannt wird.

wenn es voll qualifiziert nicht erkannt wird, fehlt dir evtl. die referenz darauf. hab gerade mal nachgeschaut, ich finde das in meinen wpf anwendungen nirgends und glaube, dass es nur in windows forms verwendet wird.

persönlich ziehe ich FromHwnd ja aus HwndSource. Diese Klasse steckt meines Wissens in der Presentation Core, die du bei WPF eh referenziert haben müsstest.
Eingefügtes Bild

"
Heute code ich, morgen debug ich und übermorgen caste ich die Königin auf int!"
P.S. Ich leiste keinen Support per PN. Wer ein Problem hat, ab damit ins Forum!
Windows 10 - Windows Anleitungen
0

#4 Mitglied ist offline   ::YC Tech:: 

  • Gruppe: aktive Mitglieder
  • Beiträge: 170
  • Beigetreten: 01. Oktober 11
  • Reputation: 0
  • Geschlecht:Männlich
  • Interessen:An PCs basteln bis der IT kommt :D

geschrieben 29. Januar 2013 - 15:07

dadurch bekomme ich dann diesen fehler:

Zitat

"DpiX" ist kein Member von "System.Windows.Interop.HwndSource".

0

#5 Mitglied ist offline   evil.baschdi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.639
  • Beigetreten: 11. Februar 07
  • Reputation: 56
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1, breites #Neuland
  • Interessen:IT, Musik

geschrieben 29. Januar 2013 - 19:31

https://blogs.msdn.c...Redirected=true

glaube, das ist die anleitung an der ich mir meinen code damals zusammengebastelt habe

Edit: Ok, also gerade mal deinen Code noch mal im Visual Studio geöffnet.
Dir fehlt die Referenz auf System.Drawing. Mehr isses nicht.

Dieser Beitrag wurde von mister-x bearbeitet: 29. Januar 2013 - 19:54

Eingefügtes Bild

"
Heute code ich, morgen debug ich und übermorgen caste ich die Königin auf int!"
P.S. Ich leiste keinen Support per PN. Wer ein Problem hat, ab damit ins Forum!
Windows 10 - Windows Anleitungen
0

#6 Mitglied ist offline   ::YC Tech:: 

  • Gruppe: aktive Mitglieder
  • Beiträge: 170
  • Beigetreten: 01. Oktober 11
  • Reputation: 0
  • Geschlecht:Männlich
  • Interessen:An PCs basteln bis der IT kommt :D

geschrieben 30. Januar 2013 - 19:02

habs, gelöst:

der verweis fehlte in den projekteigenschaften

Dieser Beitrag wurde von ::YC Tech:: bearbeitet: 30. Januar 2013 - 19:04

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0