JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2d7d7a1e69c9ec76ee45d1e87bfe0dd1Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Windows Presentation Foundation

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Otscho
Super JLI'ler


Alter: 36
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 02.04.2009, 11:04    Titel: Windows Presentation Foundation Antworten mit Zitat

Hallo seit ein paar Tagen beschäftige ich mich ein wenig mit Microsofts neuem GUI Framework "Windows Presentation Foundation". Meiner Meinung nach ist diese Technik sehr nett aufgebaut und erlaubt spielerisch graphisch anspruchsvolle, aber zur Laufzeit schlecht zu generierende Anwendungen, zu schreiben.

Hat von euch schon jemad mehr Erfahrung mit WPF gemacht ?


PS. Mein erstes WPF Projekt (nur lauffähig mit installiertem dotnet-framwork version 3.5 im Internetexplorer bzw. Firefox mit Plugin)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 03.04.2009, 02:27    Titel: Antworten mit Zitat

Leider warst du das letzte mal zum Usergroup-Treffen in Berlin und nicht dieses mal...
Dieses mal gibg es nämlich um WPF bzw. Silverlight.

Ich werde selber noch in dieser Richtung arbeiten, so dass wir uns auch weiterhin austauschen können.

was genau du mit "zur Laufzeit schlecht zu generierende Anwendung" meinst musst du mal näher beschreiben!

MfG, AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 03.04.2009, 21:48    Titel: Antworten mit Zitat

Ich habe noch mal ein kleines Demoprogrämmchen zusammengeschustert.
Es handelt sich um die obligatorische Uhr, ohne viel Schnickschnack, in 100% WPF.

Sie hat noch ein paar Probleme, die ich aber in kürze lösen kann:
- Die Uhr verdeckt natürlich einen Teil des Desktops. Sie ist "AlwaysOnTop", was bedeutet, dass man nicht "unter" die Uhr klicken kann. In meinem früherem Win32-Projekt hatte ich dieses Problem gelöst, indem die Uhr Transparent wird, wenn man mit der Maus in die Nähe fährt. Für WPF habe ich noch keine passenden Mausereignisse gefunden.
- Es fehlen noch Ziffern
- Es fehlt ein Konfigurationsmenu
- Es fehlt ein Icon im SysTray, so dass man die Uhr darüber beenden kann oder das Konfigurationsmenu aufrufen kann.

An sonsten funktioniert sie sehr gut.
Ich habe sehr viel mit den Transparenteffekten von WPF rumgespielt, so ist die Uhr natürlich rund und Zum Rand hin stärker Transparent als in der Mitte.

Hier der vollständige Code (und die exe)
http://www.jliforum.de/afe-gmdg/WpfEmi.zip

Vielleicht hat ja jemand die eine oder andere Idee, wie man eines der Probleme löst (Hauptsächlich natürlich das mit der Maus, aber ohne WinForms oder PInvoke) oder eine Anregung für Erweiterungen / Verbesserungen.

MfG, AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.04.2009, 23:19    Titel: Antworten mit Zitat

Du müsstest die WM_NCHITTEST abfangen können, dann könntest du die Maus durch das Fenster hindurch klicken lassen können wenn ich mich nicht irre:

http://www.vistax64.com/avalon/14846-wm_nchittest-httopleft-wpf.html (WndProc overriden).

Hoffe das geht mit WPF in irgendeiner Form.

Die Ziffern kannst du durch normale Labels anzeigen, wenn du sie gedreht haben willst (rotiert) dann kannst du Transformationsmatritzen setzen, das könnte dich da weiter bringen.

Für den Systemtray gibts ja auch ein Control das kannst du prima mit deinem Konfigurationsmenü Kombinieren.

Wenn du hierrauf antwortest werde ich mich morgen sogar etwas weiter damit beschäftigen können, jetzt bin ich nicht mehr wirklich dazu in der Lage.

mfg Mark
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 04.04.2009, 06:20    Titel: Antworten mit Zitat

Du meinst, dass ich mit WM_NCI-Hittest einfach den Klick an das darunterliegende Fenster weiterleite.

Muss ich mir auch mal ansehen.
Auf PInvoke möchte ich auf jeden Fall verzichten...

Die anderen Punkte sind kein Problem, ich hatte gestern Abend einfach keine Zeit mehr für die Beschriftung.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 04.04.2009, 12:37    Titel: Antworten mit Zitat

AFE-GmdG hat Folgendes geschrieben:
Du meinst, dass ich mit WM_NCI-Hittest einfach den Klick an das darunterliegende Fenster weiterleite.


Genau, wenn du die Message abfangen kannst sollte es reichen HTNOWHERE zurück zugeben.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 05.04.2009, 10:17    Titel: Antworten mit Zitat

Habe eine andere Lösung gefunden.
Das vollständige (benutzerfertige) Projekt kann man unter
http://jliforum.de/afe-gmdg/WpfEmi.zip
bekommen.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 05.04.2009, 11:15    Titel: Antworten mit Zitat

Und wie hast du es nun gelöst? Anhand der .cs Dateien kann ich leider nichts sehen was das bewirken sollte.
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 05.04.2009, 14:16    Titel: Antworten mit Zitat

Ich ermittle den Mittelpunkt der Application bezogen auf DesktopKoordinaten und die Mausposition auf dem Desktop, rechne über Pytagoras die Distanz aus und blende die Application in abhängigkeit der Mausdistanz langsam aus, so dass sie nicht mehr Sichtbar ist, wenn die Maus auf dem Bereich der Application wäre.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 08.04.2009, 07:14    Titel: Antworten mit Zitat

Ich arbeite momentan auch mit WPF, vor allem mit Expression Blend 2 ist das ganze ne richtig schöne Sache Smile

Wenn die Anwenund fertig ist sag ich bescheid.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum