Entwickler-Ecke

WPF / Silverlight - X Button ausblenden


zappo - So 12.07.09 17:16
Titel: X Button ausblenden
Hallo an alle,

und wieder eine Frage von mir.
Ich habe hier eine Anwendung welche ich, zwecks aufräumarbeiten, am liebsten nur über einen Selbst erstellen "schliessen" Button schliessen lassen möchte.
Dafür müsste das allgegenwärtige "X" in der Titelleiste natürlich weg.
Gibts da ne Möglichkeit?
Oder etwa eine Möglichkeit wie man bestimmte Aktionen vor dem schliessen ausführen lassen kann???

mfg
Sebastian


jaenicke - So 12.07.09 17:19

user profile iconzappo hat folgendes geschrieben Zum zitierten Posting springen:
Dafür müsste das allgegenwärtige "X" in der Titelleiste natürlich weg.
Gibts da ne Möglichkeit?
BorderIcons setzen, aber das ist nicht zu empfehlen...

user profile iconzappo hat folgendes geschrieben Zum zitierten Posting springen:
Oder etwa eine Möglichkeit wie man bestimmte Aktionen vor dem schliessen ausführen lassen kann???
Natürlich gibt es dafür Ereignisse. Namentlich OnCloseQuery (Frage, ob geschlossen werden darf), OnClose (es wird geschlossen) und OnDestroy (das Formularobjekt wird aus dem Speicher freigegeben).

// EDIT:
:oops: Ich habe ganz übersehen, dass es um "WPF / Silverlight" geht. Da ist das etwas anders.


zappo - So 12.07.09 17:41

hm, gut, dem schliesst sich offensichtlich ein rechte problem an, welches ich ebenfalls nicht lösen kann grad.
So scheint es ersteinmal zu gehen...

Zitat:

protected override void OnClose(CancelEventArgs e)
{
e.Cancel = true;
FileInfo fileinfo = new FileInfo("wr_bak.xml");
fileinfo.Attributes |= FileAttributes.Normal;
File.Delete("wr_bak.xml");
Close();
return;
}


leider gibt es dann beim löschen der Datei ne UnauthorizedAccess Exception.
An anderer Stelle im Programm macht das löschen selbiger Datei allerdings kein Problem, woran könnts liegen?


Andreas L. - So 12.07.09 17:55

Wenn das OnClose-Ereignis aufgerufen wird hat das Formular ja schon die Nachricht erhalten geschlossen zu werden, d. h. du brauchst Close(); nicht mehr aufrufen.


zappo - So 12.07.09 18:19

gut, das ist logisch! ;)
Ändert aber leider nichts an meinem Rechte Problem.. .:-(

Kann mir da jemand weiterhelfen??

Gruß


JüTho - So 12.07.09 18:35

Du solltest nicht die OnClose-Methode überschreiben, sondern das CloseQuery-Ereignis oder Close-Ereignis nutzen. (Das sollte unter WPF genauso gelten wie bei WinForms.) Jürgen


zappo - So 12.07.09 19:45

leider nicht, wpf kennt closed und closing als events....


JüTho - So 12.07.09 19:52

Enthält das Closing-Ereignis CancelEventArgs? Dann passt es auf jeden Fall. Jürgen


zappo - So 12.07.09 20:33

tut es!
Problem hat sich auch gelöst!

Lag daran das ich das ReadOnly des Files vorher EXKLUSIV entfernen musste.

Gruß