Parker schrieb:
Und gleich noch eine Frage. Wie bekomme ich es denn hin in einem Trigger auf ungleich null abzufragen?
Wie ich sagte, mit einem Konverter hat man eine höhere Flexibilität
Grüssli
Ich habe so gut wie keine Ahnung von Asp.Net, aber eine kurze Suche in der MSDN ergibt die folgenden Resultate und mehr:
http://stackoverflow.com/questions/821341
http://forums.asp.net/t/1307621.aspx
http://forums.asp.net/t/1399324.aspx
http://www.codeproject.com/Articles/290218/Custom-ASP-NET-Editable-DropDownList
http://forums.asp.net/t/1582116.aspx
http://stackoverflow.com/questions/3735151
Wenn ich das so durchlese, erscheint es mir die Antwort auf deine Frage zu sein.
Die MSDN Suchanfrage...
Grüssli
Vielen Dank, das sind absolut brauchbare Hinweise, mit denen ich mich im Folgenden beschäftigen werde, um dann die für mich beste Vorgehensweise zu finden.
paulrei schrieb:
Hier steigt der RAM zwar langsamer an, aber er steigt ebenfalls.
Über welchen Zeitraum? 5 Minuten? 50 Minuten? 5 Stunden? Es liegt in der Natur einer GC das die sich erst mit der Zeit auf einen Speicherbedarf "einpegelt". Dies ist kein Fehler und kein Leak.
Auch hat Dispose wenig mit Memory-Leaks zu tuen. Hierbei geht es nur darum nicht mehr benötigte (unmanaged) Resourcen gezielt freizugeben anstatt auf die GC zu warten. Grundsätzlich freigegeben würden diese Resourcen aber eh früher oder später.
paulrei schrieb:
Ich kann mir das nicht erklären.
Dann beschäftige Dich mal genauer mit der Arbeitsweise einer GC. Der erste (und häufigste) Denkfehler ist, das in einer GC Speicher gelöscht wird wenn er nicht mehr gebraucht wird. Das ist aber FALSCH. Speicher wird nur dann freigegeben wenn neuer Speicher benötigt wird. Solange der Freispeicher einer App ausreicht wird die GC nicht laufen. Erst wenn der Freispeicher der App zur Neige geht versucht diese durch einen GC-Lauf Garbage loszuwerden. Geht das nicht wird einer weiterer Block Speicher vom System geholt. Im Taskmanager sieht man aber nur den zugewiesenen Speicher, man sieht nicht wieviel % davon benutzt werden und wieviel noch frei sind.
Zu GC-Collect():
Mit dieser Methode kann versucht werden, den gesamten Speicher freizugeben, auf den nicht zugegriffen werden kann. Allerdings garantiert die Collect-Methode nicht, dass der gesamte Speicher freigegeben wird, auf den nicht zugegriffen werden kann.
Beachten: da steht "kann". Collect aufzurufen bedeutet also nicht zwingend das dann aller Speicher aufgeräumt wird. Am besten die Finger davon lassen damit die GC ihre Arbeit machen kann.Mit GC.Collect() löst Du keine Speicherprobleme, Du erzeugt nur Performanceprobleme.
ich habe noch weiter geforscht und verstehe jetzt gar nichts mehr! Wenn ich
img.RotateFlip(RotateFlipType.RotateNoneFlipY);
img.RotateFlip(RotateFlipType.RotateNoneFlipY);
verwende, dann geht die Beschreibung verloren. Wenn ich stattdessen jedoch
img.RotateFlip(RotateFlipType.Rotate90FlipNone);
img.RotateFlip(RotateFlipType.Rotate270FlipNone);
verwende, dann funktioniert alles. Steckt da noch irgendeine Logik dahinter, die ich nur nicht nachvollziehen kann?
Hallo,
ich habe hier eine Entwicklungs Umgebung für µC, dort gibt es eine Form mit einem Projektverzeichniss in der Hauptform.
Fange ich mit der Maus an das Projektverzeichniss Formular zu ziehen sehe ich nur einen leeren Rahmen der mir anzeigt an welcher Position in der Main Form ich
andocken kann das Projektverzeichniss Formular bleibt zunächst noch an seiner ursprünglichen Stelle, erst nach loslassen des Mouse Buttons dockt
das Projektverzeichniss an die Position wo vorher der leere Rahmen zu sehen war.
So etwas möchte ich machen.
Kann man einfach auch Einträge ändern/hinzufügen und diese direkt abspeichern? Wenn ich das probiere, bekomme ich immer eine ExternalException
System.Drawing.Image img = System.Drawing.Image.FromFile("bild.jpg");
PropertyItem i = img.PropertyItems[0];
i.Id = 0x010E; // PropertyTagImageDescription
i.Type = 2;
i.Value = System.Text.Encoding.ASCII.GetBytes(s);
i.Len = i.Value.Length;
img.SetPropertyItem(i);
img.Save("bild.jpg", ImageFormat.Jpeg);
Es geht nur, wenn ich erst einen anderen Name angebe und dann nachträglich die Dateien überschreibe, und die zusätzlich angelegte Datei lösche
Dravere schrieb:
Wenn ich einfach mal etwas raten dürfte:
Du kennst die Bedeutung von XmlReader.ReadToFollowing nicht? Der XmlReader liest nur vorwärts und nicht rückwärts. Wenn du somit am Element vorbei bist, kannst du dieses nicht mehr auslesen, wodurch deine if -Bedingungen immer false sind und du gar nie die entsprechenden Werte einliest, wodurch es auch nie zu einem Fehler kommt.
Leider falsch geraten. Die Verwendung passt an dieser Stelle so Habe allerdings deinen Tipp mit dem kleinen Beispielprojekt nachverfolgt und ziemlich dumm aus der Wäsche geschaut als sich der Fehler nicht reproduzieren lies. Daraufhin habe ich meinen Code noch mal sorgfältig unter die Lupe genommen und musste leider feststellen, dass mein Code einwandfrei funktioniert und ich nur einen großen Logikfehler drin hatte...
Mein Problem hat sich also geklärt.
Vielen Dank für deine Hilfe und Entschuldigung für das Verknotes des Hirns durch seltsame Beschreibungen
Da dieses Thema ohne Mehrwert für irgend jemand ist, kann es gelöscht werden.
Grüße
MeinAccount
hehe ja werd ich mal suchen (oder besser doch einen aufsuchen ?!?) ^^,
danke dir
Edit :
Irgendwie ist das schon komisch ^^,
Ich hab ihn nun über http://www.freefontconverter.com/ umgewandelt, ist auch kleiner geworden ... in Windows wird der Font als normaler TrueType angezeigt ... aber leider bekomme ich immer noch die selbe Exception in C#
Ev. hat mir ja sonst noch einer ne Idee,
Gruß,
Also zuerst einmal: MenuItem.Icon
AngelaMerkel schrieb:
Ich habe beim Code-Erstellen nicht herausgefunden, in welcher Form ich die Adresse der Icon-Datei bekanntmachen kann
Wie bitte?
string imagePath = @"dein\pfad\zur\datei.png";
Image icon = new Image();
icon.Source= new BitmapImage(new Uri(imagePath, UriKind.Relative));
MenuItem item = /* ... */;
item.Icon = icon;
Geht natürlich auch mit XAML
<MenuItem>
<MenuItem.Icon>
<Image Source="dein\pfad\zur\datei.png" />
</MenuItem.Icon>
</MenuItem>
Grüssli
ja alle annahmen stimmen und der vorschlag ist natürlich offensichtlich richtig.
als erklärung für meine etwas eingentümliche fragestellung : propertyA stellt
quasi eine schnelleinstellung für die anderen properties da, bzw der setter
überschreibt die anderen anhand von Min/Max regeln. so kann man das werte
bündel grob einstellen, ohne das feld ausklappen zu müssen, zerstört aber
auch nicht eventuell vorhanden feineinstellungen dabei.
vielen dank für die schnelle hilfe, hätte ich natürlich auch selbst drauf kommen
können, aber naja