Laden...

Forenbeiträge von visionmaster Ingesamt 77 Beiträge

07.10.2016 - 19:29 Uhr

Ich muss ein normales WPF-Window exakt über einer Shape in einer Powerpointpräsentation platzieren.
Dabei kann man Posiition und Größe der Shape im Slide ermitteln (Top, Left, Height, Width). Außerdem kann auf gleiche Weise die Größe des Slide, als auch z.B. die des SlideShowWindow ermittelt werden.
Leider passt nichts zusammen.
Auf einem HD-Bildschirm (1920x1080) wird für die Größe des Slideshowwindow 1440x810 und für das Slide 960x540 zurückgegeben.
Ich kann mir aus den Angaben keinen "Schuh" machen.
Was sollen die Angaben des Slideshowwindow's?
Ich brauche dessen Angaben aber, um die Lage der Präsentation zu ermitteln.

Hat jemand schon mal sowas gemacht und hat ggf. einen Tip?

Gruß!

24.06.2012 - 12:05 Uhr

Vielleicht kennt jemand von Euch die Gyration Air-Mouse. Mit dieser kann man auf elegante Weise z.B. Präsentationen steuern.
Um die Sondertasten der Maus zu belegen und auszuwerten gibt es eine zugehörige Software (Motiontools).
Nun möchte ich mit dieser Maus gern meine eigene Applikation steuern. Aber mir gelingt es einfacgh nicht, die Sondertasten der Maus auszuwerten.
Hat das schon mal jemand von Euch gemacht? Wie sollte man vorgehen?

Schon mal vielen Dank für die (hoffentlich) Hilfe.

13.03.2012 - 08:35 Uhr

Naja, das ist mir schon klar. Und danke für Deine Hilfsbereitschaft!
Aber ich kann eben gerade nicht nachvollziehen (obwohl wir beide ggf. nichts dran ändern können), wieso es keine Unterstützung dafür gibt, eine ggf. recht aufwendig erstellte Grafik auf die "dumme" Pixelgrafik der Stroke zu rendern. Nach diesem Rendern benötige ich die Semantik doch auch gar nicht mehr.
Als nächstes hätte ich z.B. gern gestrichelte Linien oder eine Bitmap. Beide möchte ich dann (nach dem "rendern") mit den gleichen Werkzeugen bearbeiten, wie die Freihandzeichnung. Aber das alles "per Hand" zu überführen ???!!!
Oder ist die InkCanvas der falsche Container?

13.03.2012 - 07:27 Uhr

Klar kann ich den Kreis selbst approximieren und die Punkte des Umfangs berechnen (bin als Krücke gerade dabei es so zu machen).
Aber ist das wirklich erforderlich - ich kanns einfach nicht glauben. Gibt es wirklich keine Möglichkeit Geometrie-Objekte in einen Stroke zu überführen?

12.03.2012 - 21:50 Uhr

vielen Dank für die Antwort.
Aber: Muss ich verstehen, was Du meinst? Was meinst Du mit "selber malen".
Ich möchte es aber mit Code tun. ... damit es auch ein Kreis wird.

12.03.2012 - 18:01 Uhr

Ich muss diesen alten thread nochmal aufnehmen.
Ich stehe vor exakt der gleichen problematik. Leider gibt es hier bisher keinen brauchbaren Tipp.
Hat in der Zwischenzeit noch irgendjemand einen Tipp, wie man z.B. eine simple Ellipse dem InkCanvas-Stroke hinzufügen kann?
(Children.Add ist keine Lösung, da später nicht mit den Hausmitteln von InkCanvas bearbeitbar).

Vielen Dank im Voraus.

11.03.2012 - 11:24 Uhr

Vielen Dank!
Das Problem ist damit gelöst.

10.03.2012 - 19:34 Uhr

Ich nutze ein InkCanvas um Freihandzeichnungen zu erstellen.
Nun möchte ich temporär zwar die Freihand-Objekte sichtbar lassen, allerdings darf die Form (und so natürlich auch das InkCanvas) die Mouse-Events nicht mehr abfangen. Vielmehr sollen diese jetzt auf die darunterliegende Applikation durchgegeben werden.
Hat da jemand einen Tipp?

Vielen Dank schonmal!

08.03.2012 - 08:24 Uhr

Wahnsinn - genau das wars! Danke.
>Das Eventhandling unter WPF ist m.E. gut gemeint, aber sowas von verworren und unübersichtlich. Naja - es geht je erstmal.

Vielen Dank nochmal.

07.03.2012 - 18:36 Uhr

Ich wollte nur kurz die (bzw. eine) Lösung angeben:
ich nutze jetzt WPF und darin ein InkCanvas-Element. Damit ist alles mit drei Zeilen Code erledigt (- naja, es gibt dann eben andere Probleme 😉
Aber Schreiben und Freihand-Zeichnen ist wirklich ok.
Das WPF werde ich dann als DLL in das Office-Addin einbinden.

07.03.2012 - 18:33 Uhr

Ich zeichne in einem WPF-Fenster ein rubberband-Viereck in ein canvas.
Das Problem ist, dass das mouse_up event nicht zieht. Ich habe alle verfügbaren events (preview-mouse-up, mouse-up) aller Objekte versucht - nichts.
Ich vermute mal, dass das gezeichnete Viereck selbst das event "schluckt"?!

Was kann ich tun? Hat jemand eine Idee?

06.03.2012 - 07:27 Uhr

Ich arbeite in WPF mit einer transparenten Form (d.h. Color=Transparent). Es funktioniert alles auch prima - nur sieht man, dass der Form-Hintergrund doch nicht absolut transparent ist. Er bleibt leicht milchig.
Woran liegt das? Wie kann man das beheben?

Für Hinweise bin ich sehr dankbar.

03.03.2012 - 15:08 Uhr

Ich hab mich etwas umgeschaut und denke wirklich, dass ich das Problem mittels WindowsTouch lösen können müsste. Zumindest gibt es im WEb Beispiele, die meiner Anforderung sehr nahe kommen.
Z.B. Windows Touch Scratchpad Sample in C# (MTScratchpadWMTouchCS)
Aber ich finde eifach nirgends einen Hinweis, wie ich Touch unter Windows-Forms zum laufen bekomme. Kein sinnvoller Verweis, keine using-Direktive ... einfach nichts.
Die Beispiele (s.o.) sind super - aber wie mache ich ein "fingereingabefähiges Formular"???

Wer hat das schon mal gemacht?

01.03.2012 - 10:00 Uhr

Ich glaube auch nicht an die Splines-Lösung. Erstens machen Splines die Grafik ja auch nicht besser, lediglich die Ecken sind dann eben rund (etwas vereinfacht - ich weiß). Aber es kommt mir ja nicht darauf an eine stetige Kurve aus Stützpunkten zu ermitteln. Sondern es soll einfach möglichst exakt die Bewegung der Mause in Grafik umgesetzt werden.
Zum anderen wird zwischen den Freihand-Texten ja oft auch ganz simpel gezeichnet. Da sind Splines dann einfach tödlich. Und man möchte ja auch nicht laufend umschalten.

Ich habe jetzt den Tipp bekommen, auf die Mouse-Events zu verzichten und das Ganze per Timer und Systemroutine für die Mouse-Position zu lösen. Das ist ggf. einen Versuch wert. Ich werde es, falls keiner einen besseren Vorschlag hat, dann wohl mal versuchen.

29.02.2012 - 12:46 Uhr

Danke für den Tipp. Dass Du bereits mal ähnliche Probleme hettest tröstet ein wenig.

Aber was meinst Du mit "Genauigkeit der Mouse-Events"? Die sind m.E. schon genau genug (was die Positionen betrifft). Nur ziehen sie offensichtlich zu selten. Kann man die umgehen? Z.B. keine Linienzüge zeichnen (bisher synthetisiere ich alles aus einer Menge von Linien), sondern z.B. einfach die Pixel direkt setzen???

Das es prinzipiell gehen muss, zeigen ja genug Applikationen, wo das funktioniert.
Die Frage ist nur, wie die das machen.

29.02.2012 - 12:26 Uhr

Es gibt je bereits mehrere Hinweise, wie man auf einer Form freihand zeichnen kann. Dazu nutzt man die Mouse-Events (mouse_down, mouse_up, mouse_move) für das Ermitteln der Zeichenkoordinaten sowie das paint-Ereignis zum zeichnen.
Soweit, so gut - das klappt natürlich auch.
Allerdings soll meine Applikation auf einem Tablet-PC genutzt werden. Dabei wird auch recht oft einfach freihand in das Bild geschrieben.
Dabei stelle ich aber nun fest, dass die klassische Technik für "normale" Grafiken (leichte Schwünge, Linien, Rechtecke usw.) zwar gut funktioniert. Die bei einem mäßig flotten Schreiben aber auftretenden engen Kurven und schnellen Richtungswechsel gehen völlig unter. Im Ergebnis sieht die Schrift grauenhaft aus und ist auch kaum lesbar. Schreibt man extrem (d.h. wirklichkeitsfremd) langsam, geht das schon. Aber so kann man das Programm nicht nutzen.

Kennt jemand einen Trick, wie man das hinbekommt?
Ist die Behandlung der Events zu träge?
(Hier muss ich wohl bemerken, dass ich auf eine transparente Form schreibe. Die Events werden also auf einer (fast) nicht transparenten Form 1 (Opacity=1%) abgefangen und die Befehle dann an die transparente Form 2 (TransparencyKey) weitergeleitet.)
Gibt es Alternativen?

Über eine Antwort würde ich mich sehr freuen.

24.02.2012 - 17:27 Uhr

Vielen Dank für den Tipp.
Leider habe ich es auch dAMIT NICHT HINBEKOMMEN:
Entweder er zeichnet farbig oder gar nichts.
Ich werde am Wochenende nochmal "wühlen".

So - geschafft!
Sorry für Eure Mühe.
Color.FromArgb(255,255,255,255) ist die Lösung.
Klar: Die Form hatte als transparente Farbe weiß. Und alpha musste auf 255, sonst wird ja nicht weiß="transparent der Form" gezeichnet.

Ist alles aber schon ganz schön gewöhnungsbedürftig 😉

23.02.2012 - 19:57 Uhr

Danke für die schnelle Antwort.
Die Bitmap ist Format32bppArgb. Aber mit (0,0,0,0) wird wieder schwarz gezeichnet.

23.02.2012 - 19:35 Uhr

Ich habe folgendes Problem:
Ich habe ein Programm geschrieben, mit dem man mittels einer Bitmap (damit man die Grafik später auch speichern kann) auf eine transparente Form zeichnen kann. Die Transparenz der Form selbst wird durch die Angaben "weißer Hintergrund"+"transparencykey=weiß" erreicht.
Das klappt alles auch ganz prima.
Nun möchte ich aber ein Radierwerkzeug anbieten. Daran verzweifle ich gerade.

Benutze ich die Farbe Color.Transparent so geschieht gar nichts.
Übermale ich mit der weißen Farbe der Form, so wird es eben weiß und nicht transparent (ich dachte der transparencykey zieht hier ggf. auch; ist aber nicht).
Nutze ich die Farbe der jungfräulichen Bitmap (0,0,0) so wird der Bereich (natürlich) schwarz.
Also meine Frage: Wie muss ich vorgehen, um quasi freihand wieder Bereiche zu leeren.
Es wäre schön, wenn jemand eine Antwort weiß.
Vielen Dank schon mal.

19.02.2012 - 11:09 Uhr

Ja klar - danke. Du hast schon recht.
Aber wenn man keine Ahnung hat, ist es manchmal eben nicht so einfach, das Wesentliche vom Unwesentlichen zu unterscheiden.
... wird aber von Mal zu Mal besser 😉

19.02.2012 - 10:38 Uhr

Ich habe gerade etwas mit den Formaten herumprobiert:
Mit .png funktioniert es. Andere Formate (wie z.b. .bmp) gehen jedoch auch nicht.
Na OK - das stört mich jetzt erstmal nicht so sehr. Nehme ich eben .png.
Bleibt die Frage: Warum ist das so?

19.02.2012 - 10:13 Uhr

Danke erstmal für die Antwort!
Ja, ich zeichne in graphBMP, z.B.:
graphBMP.DrawLine(actPen, ptStart, ptNew)

Was ich vergaß zu schreiben: Die gezeichneten Objekte sind im Grafikfile ja vorhanden. Zeichne ich z.B. Linien in blauer Farbe, so sieht man, dass die enthalten sind. Aber es ist dann eben blau auf schwarz. Und schwarze Linien sind dann natürlich "weg".

Wichtig ist für mich, dass der Bitmap-Hintergrund transparent bleibt. Denn ích benutze die Bitmap, um auf eine transparente Form zu zeichnen. Die Bitmap nutze ich, um die Grafik speichern zu können. Das klappt auch ganz gut - nur wenn ich speichere (und natürlich auch beim wieder-laden) wird der Hintergrund schwarz.

18.02.2012 - 22:43 Uhr

ich habe ein Problem beim Speichern einer Bitmap. Wahrscheinlich ist es ein sehr simpler Fehler, aber ich finde einfach keine Lösung.

Ich zeichne eine Grafik unter Nutzung einer Bitmap:

bitmap = new Bitmap(this.Width, this.Height);
graphBMP = Graphics.FromImage(bitmap)
... dann diverse Zeichen-Befehle ...
Die Grafik wird auf dem Bildschirm auch völlig normal angezeigt.

Speichere ich aber anschließend mit

bitmap.Save(Filename, System.Drawing.Imaging.ImageFormat.Jpeg)

so ist die Grafik komplett schwarz.
Muss ich den Hintergrund auf "nicht-schwarz" setzen?
Warum erscheint das Bild aber beim Erstellen auf dem Schirm völlig ok?

Ich hoffe, jemand hat einen Tipp für mich. Danke schonmal.

05.02.2012 - 18:04 Uhr

Mit dem Stift-Cursor kann man in laufenden Powerpoint-Präsentationen Anmerkungen anbringen oder Freihandskizzen einfügen. Allerdings ist diese Möglichkeit sehr rudimentär.
Ich möchte eine mit GDI+ in einem Graphics-Object erzeugte Grafik in das aktuelle Slide einfügen bzw. direkt in das Slide zeichnen.
Das Graphics-Objekt auf das Handle des Powerpoint-Fensters legen führt nicht zum Erfolg, da die Grafik quasi nur "oberflächlich" dargestellt wird und bei einem Windows-Refresh natürlich wieder weg ist. Ein OnPaint-Event in Powerpoint habe ich nicht gefunden.
Oder könnte man die erzeugte Grafik in das Sheet kopieren?
Hat da jemand einen Tipp?

Schon mal vielen Dank!

04.02.2012 - 14:45 Uhr

Sorry - ich weiß, dass das Forum mit Beiträgen zu transparenten Forms überquillt. Aber ich finde einfach keine einigermaßen elegante Lösung für mein Anliegen:
Ich möchte eine (unsichtbare, also transparente) Form topmost aufmachen und in diese anschließend mit der Maus (resp. einem Tabletstift) zeichnen.
Aber Opacity=1% (z.B.) macht auch die Grafik (fast)unsichtbar. Setzen von TransparencyKey lässt keine Events mehr zu.
Hat da irgendjemand eine Lösung?
Schon mal vielen Dank!

27.12.2009 - 16:47 Uhr

[EDIT=herbivore]Abgeteilt von WebCam mittels VFW in C#[EDIT]

Hallo,
ich bin C#-Anfänger! Ich möchte gern als Erweiterung eines anderen Programmes eine WebCam ansprechen und gesteuert einen Videofile erzeugen.
Das hier diskutierte Beispiel habe ich ausprobiert - es funktioniert auch gut. Allerdings ist der Code für nen Anfänger doch ein harter Brocken.
Kennt nicht jemand ein Steuerelement o.Ä., welches man nutzen kann ohne die ganzen Interna verstehen zu müssen?
Sowas fände ich absolut hilfreich - vielleicht gibts sowas ja schon.

24.12.2009 - 14:37 Uhr

Sorry, das ist eigentlich ne Frage und keine Antwort:
Ich nutze auch das axwindowsmediaplayer-Control. Nun möchte ich die Visualisierungsart einstellen. Z.B. soll er manchmal Videos (sind Musikvideos) auch als Video abspielen, manchmal aber eine der eingebauten (z.B. Alchemie-)Visualisierungen verwenden. Ggw. kommt einfach immer nur die Alchemie (startet man das .avi im externen Mediaplayer, so wird das Video normal abgespielt).
Ich hab einfach keine Idee mehr, wie ich das Problem lösen kann.