Kindfenster resizen automatisch oder event ???



  • Hi,

    wie kann ich bei C# eine PictureBox dazu veranlassen,
    dass sie ihre Größe ändert, wenn das Vaterfenster resized wird ??

    Muss ich über das event gehen, oder kann man das automatisch machen lassen ??

    Grüße



  • Du könntest pictureBox.Anchor auf alle 4 Richtungen setzen.



  • Kann ich nicht irgendwie dem Vater sagen, dass er die resize events seiner kinder aufrufen soll, ohne diese jedesmal explizit hinzufügen zu müssen ???



  • Naja du könntest im Untercontrol eine Methode implementieren die das Resize vornimmt und im Resized-Event die Methode aufrufen.

    Übrigens wird die Verankerung des Controls an der Form nur einmal gesetzt... insofern sollte das, richtig verwendet schon ausreichend sein.



  • Hmm wie layoutet man denn in C# so.... oder was ist ein guter Weg ??

    Ich hätte versucht für jede GUI klasse das Resize event zu überschreiben...
    So das sich jedes GUI element selbst layoutet.

    Welche Layoutcontainer gibt es denn ???



  • AlexanderKiebler schrieb:

    Welche Layoutcontainer gibt es denn ???

    Gegenfrage: WinForms oder WPF?



  • Wenn ich jetzt ehrlich bin und Forms sage, erwartet mich dann eine Grundsatzdiskussion ??? *ggg*



  • AlexanderKiebler schrieb:

    Wenn ich jetzt ehrlich bin und Forms sage, erwartet mich dann eine Grundsatzdiskussion ??? *ggg*

    Nein, aber zwischen WinForms und WPF liegen Welten, so das man klären sollte, bevor man auf die Layoutmöglichkeiten und Controls eingeht.



  • Ja hab ich scho mitbekommen.
    Ich kenne es so, dass man klassen in LayoutContainer packt.
    Aber ich glaube das ist nur bei WPF so, nicht bei forms ??

    Ich bin gerade am überlegen, ob ich jeweils das Resize event überschreiben soll...



  • AlexanderKiebler schrieb:

    Ja hab ich scho mitbekommen.
    Ich kenne es so, dass man klassen in LayoutContainer packt.
    Aber ich glaube das ist nur bei WPF so, nicht bei forms ??

    Ich mag mich zwar nicht mit WindowsForms auskennen, behaupte aber das es auch in WindowsForms mindestens optionale Layoutcontainer gibt, und zusätzlich Anchors (Und bereits letztere ermöglichen meist ein ausreichend gute Behandlung, ohne eigene Codezeilen).

    AlexanderKiebler schrieb:

    Ich bin gerade am überlegen, ob ich jeweils das Resize event überschreiben soll...

    Ich bin mir ziemlich sicher, das dies in der Regel unnötig ist.

    Unter dem System.Windows.Forms Namespace finde ich jedenfalls einen Bereich der sich Layout nennt, und in dem auf FlowLayoutPanel, TableLayoutPanel und ein SplitContainer verwiesen wird.

    Weiterhin gibt es die Control.Anchor-Eigenschaft. Die Alleine Reicht mir in der VCL für 90% aller Resizeprobleme (Ein Button der beispielsweise sowohl an der Linken als auch Rechten Seite gebunden wird, wird an dynamisch in der Breite angepasst...).

    P.S: Ich gehe davon aus das du bei der PictureBox einfach als Ancors alle 4 Seiten angeben musst:

    pb.Anchor = (AnchorStyles.Bottom | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left);
    


  • Okay, danke... habes gerade auch gefunden...

    Das mit den eigenen Resize events ist mir auch komisch vorgekommen für normale Fenster...


Anmelden zum Antworten