Ich blende ein Bild ein mit System.Windows.Visibility.Visible wenn das Window Loaded.
Nun möchte ich das jede 2. Sekunde das Bild blinkt, die SChleife läuft durch, der delegat ruft die funktion auf die Visible auf Hide oder Visible setzt aber es passiert nichts, nur am Ende der
for - Schleife Taucht das Bild auf.
Wie kann ich nach jedem Durchgang der Schleife das Image das übrigens im Grid eingebettet ist neuzeichnen oder neu darstellen...?
Ich hab das schon mal geschaft aber immer wieder bring ich bei diesem Trick 17 was durcheinander, hab schon das Gefühl ich könnte nicht mal ne Variable deklarieren.
Helft mir bitte.
Ich blende ein Bild ein mit System.Windows.Visibility.Visible wenn das Window Loaded.
Helft mir bitte.
Programmiert Niemand mehr mit WPF ?
Ich hoffe Du erwartest nicht im Ernst zwischen Sonntags 22 Uhr und Montags 8 Uhr eine Antwort. Man kann auch mal warten - vor allem an Wochenenden.
Ich nehme an die Schleife läuft direkt im Code des Fensters und nicht in einem BackgroundWorker bzw. eigenen Thread? Und verwendest du einen Dispatcher?
Ich nehme an die Schleife läuft direkt im Code des Fensters und nicht in einem BackgroundWorker bzw. eigenen Thread? Und verwendest du einen Dispatcher?
ja die Schleife läuft im Hauptthread.
Ich wollte ja mit delegatate.BeginInvoke(..,..,...) ; die Methoden zum Schalten der Visible Property in einem anderen Thread starten, aber ich kann dann nicht auf die Image - Objekte zugreifen weil die jetzt nicht erreichbar sind , weil die im Hauptthread sich befinden wahrscheinlich.
(Das wäre auch interresant zu wissen , wie kann man Threadübergreifend programmieren? ) .
Weeks of programming can save you hours of planning
Hallo,
Die Deutsche Rechtschreibung ist C# du darfst damit machen was du willst, wenn du Blödsinn programmierst wird es nur dich interessieren.
Es gilt auch für alle anderen Rechtschreibungen.
Es ist ziemlich sinnfrei, sich auf eine Signatur zu beziehen und dabei ein Zitat zu verwenden, das diese nicht enthält. Stattdessen hättest Du mal dem Link folgen sollen.
Mit Deinem Anspruchsdenken (Push nach 9 Stunden zudem noch nachts und sonntags, keine eigenen Bemühungen zur Diskussion gestellt - offensichtlich erwartest Du eine Komplettlösung vorgekaut zu bekommen) und Deinem Umgang mit anderen Board-Mitgliedern sorgst Du nicht gerade dafür, dass jemand Lust hat, Dir hier unentgeltlich in seiner Freizeit zu helfen.
Vielleicht konkretisierst Du Deine Frage erst mal. Und wenn Du "das schon mal geschaft" hast, dann wäre es doch am einfachsten da nachzuschauen, wie Du's gemacht hast.
ja die Schleife läuft im Hauptthread.
Wenn du Operationen im GUI-Thread machst, dann wird die Oberfläche erst dann aktualisiert, wenn ein Benutzer-Code abgearbeitet wurde. Wenn am Anfang dein Bild sichtbar ist, und am Ende deiner Schleife wieder auf sichtbar geändert wird, so hat sich für die Oberfläche nichts geändert, also siehst du auch keine Änderung.
Du musst die Operation in einen 2. Thread auslagern und mit Hilfe des Dispatchers die Visible-Änderungen in den GUI-Thread leiten.
Grüße
ja die Schleife läuft im Hauptthread.
Du musst die Operation in einen 2. Thread auslagern und mit Hilfe des Dispatchers die Visible-Änderungen in den GUI-Thread leiten.
Grüße
Danke Spook, mit Hinweis auf Dispatcher hat alles funktioniert. Ging ganz schnell.
An die anderen danke für die ausführliche Info, für den Hinweis auf die Info. Sehr interessant.
Vor allem die weiteren Links dort.
Hab's mit BackgroundWorker und Element.Dispatcher gelöst. Dem Dispatcher gebe ich einen Bool als Parameter mit, um die Visible ein- bzw. auszuschalten.
Animationen werden unter WPF üblicherweise mit Storyboards umgesetzt, daher der Link von mir. Da braucht es keine Backgroundworker, Timer oder Dispatcher.
Weeks of programming can save you hours of planning