Steuerelemente und Panels in WPF

Standard

Layouting in WPF ist viel flexibler und mächtiger als in Windows Forms, aber auch viel komplexer. In Windows Forms gibt es Anchoring und Docking, um das Verhalten der Steuerelemente bei Änderung der Fenstergröße zu steuern. In WPF beeinflussen viele Faktoren die Anordnung der Steuerelemente, einer davon sind die Panel-Elemente.

In der MSDN-Library findet sich eine Beschreibung des WPF-Layoutsystems. Die wichtigsten Panel-Elemente sind:

Canvas Definiert einen Bereich, in dem Elemente explizit mit Koordinaten
relativ zu diesem Bereich positioniert werden.
StackPanel Die Elemente werden entweder horizontal oder vertikal in einer Linie
angeordnet.
DockPanel Die Elemente werden an den Rändern positioniert oder füllen den inneren Restbereich.
WrapPanel Die Elemente werden sequentiell von links nach rechts angeordnet und in
die nächste Zeile umgebrochen, wenn am Ende einer Zeile kein Platz mehr
ist.
Grid Definiert einen flexiblen Gitterbereich, der aus Spalten und Zeilen
besteht.

Mehr Informationen über die verschiedenen Panel-Elemente gibt es im Artikel Panel Overview.

Nicht nur die richtige Auswahl des Panel-Elements beeinflusst das Layout, einige Steuerelement-Eigenschaften haben ebenfalls Auswirkungen auf die Anordnung der Steuerelemente. Die wichtigsten Eigenschaften mit Einfluss auf das Layout sind:

HorizontalAlignment Definiert, wie das Element horizontal innerhalb des Parent-Elements
positioniert werden soll. Für diese Eigenschaft gibt es vier mögliche
Werte: *Left*, *Center*, *Right*, *Stretch*.
VerticalAlignment Definiert, wie das Element vertikal innerhalb des Parent-Elements
positioniert werden soll. Für diese Eigenschaft gibt es vier mögliche
Werte: *Top*, *Center*, *Bottom*, *Stretch*.
Margin Definiert den Abstand zwischen dem Element und dem Elternelement oder
den Geschwisterelementen.
Padding Definiert den Abstand zwischen dem Rand eines Steuerelements und seinen
Kindelementen.

Detailliertere Informationen über den Bedeutung dieser Eigenschaften gibt es in der MSDN-Library.

Nicht jede Eigenschaft ist in jedem Panel sinnvoll. Folgende Tabelle zeigt die Wirkung bestimmter Kombinationen von Eigenschaften und Panel-Elementen:

Canvas Margin Teilweise: An den zwei Seiten, die für die Positionierung relevant sind,
werden die entsprechenden Elemente des Margin-Werts hinzuaddiert.
HorizontalAlignment Nein
VerticalAlignment Nein
StackPanel Margin Ja
HorizontalAlignment Teilweise: Nur, wenn Orientation Vertical ist.
VerticalAlignment Teilweise: Nur, wenn Orientation Horizontal ist.
DockPanel Margin Ja
HorizontalAlignment Teilweise: Wenn Dock den Wert Left oder Right hat, ist diese Eigenschaft
sinnlos.
VerticalAlignment Teilweise: Wenn Dock den Wert Top oder Bottom hat, ist diese Eigenschaft
sinnlos.
WrapPanel Margin Ja
HorizontalAlignment Teilweise: Wenn Orientation Vertical ist oder ItemWidth genug Extraraum
lässt.
VerticalAlignment Teilweise: Wenn Orientation Horizontal ist oder ItemHeight genug
Extraraum lässt.
Grid Margin Ja
HorizontalAlignment Ja
VerticalAlignment Ja

Welche Vorteile hat der WPF-Layoutmechanismus, der im Vergleich zu Windows Forms viel komplexer ist?

  1. Der Entwickler kann besser kontrollieren, wie sich die Anordnung der Steuerelemente verhalten soll, wenn der Benutzer die Größe des Fensters ändert. Das konnte aber bereits in Windows Forms mit dem Anchoring oder dem Docking erreicht werden.
  2. Die Steuerelemente können ihre Größe und Position automatisch anpassen, wenn bei einer lokalisierten Anwendung die Texte der Übersetzungen länger sind. Darüber gibt es wieder einen Artikel in der MSDN-Library.

Es gibt weitere Panel-Elemente, die ich in diesem Artikel nicht berücksichtigt habe. Diese sind zum größten Teil nur für die Entwicklung eigener Steuerelemente relevant. Außerdem können eigene Panel-Elemente entwickelt werden, wenn die Vorgefertigten nicht ausreichen.

71 thoughts on “Steuerelemente und Panels in WPF

  1. Simply desire to say your article is as surprising. The clearness on your submit is
    simply great and i could assume you’re an expert in this subject.
    Well together with your permission let me to grasp your RSS feed to keep updated with approaching post.
    Thanks one million and please continue the rewarding work.

  2. wonderful poijts altogether, yoou ϳust received ɑ neԝ reader.
    Whаt wouⅼԀ you suggest ɑbout уouг post that үou
    simply mаde soome ⅾays in tһe past? Any sure?

  3. This is reakly іnteresting, Yoᥙ’re a ᴠery skilled blogger.

    I haѵe joined your rss feed and ⅼߋok forward tto
    seeking m᧐гe of your wonderful post. Ꭺlso, I haѵe shared yoսr site inn my social networks!

  4. Youu аctually make іt appеar really easy with yоur presentation ƅut I in finding tһis topic to bbe гeally something that
    I thіnk Ι would by no means understand.
    Ӏt kind of feels tⲟo complex ɑnd extremely extensikve ffor me.
    I аm looking forward fⲟr your subsequent post, Ι will attempt to get the dangle оf it!

  5. Ꮃe arе a gaggle of volunteers ɑnd opening a new scheme inn our community.
    Ⲩoᥙr sute ρrovided uus wіth ᥙseful information to work
    on. Yօu’νe performed a formidable task annd оur wh᧐le
    neighborhood wiⅼl probably be thankful to you.

  6. Eνerything iis very open with a clear description of the issues.
    It waas defіnitely informative. Yоur website іs ᥙseful.
    Ⅿаny thankss for sharing!

  7. Status Auto Liker, Autoliker Facebook, Facebook Auto Liker, auto like, Status Liker, Autoliker, Fb Autoliker, autolike, Autoliker, Increase Facebook Likes, Auto Like, Facebook Autoliker, auto liker, Photo Auto Liker, Photo Liker, autoliker, facebook auto liker, Facebook Liker, Auto Liker, Working Auto Liker

  8. เพิ่มไลค์แฟนเพจ, ปั๊มไลค์เพจ facebook, เพิ่มไลค์เพจ ราคาถูก, ปั้มไลค์เพจ, ปั๊มไลค์เพจ, ปั้มไลค์แฟนเพจ, ปั๊มไลค์เพจ, ปั๊มไลค์แฟนเพจ, ปั้มเพจ, เพิ่มไลค์เพจ, ไลค์เพจ, ไลค์เพจ

  9. Up Like Fanpage, ปั้มไลค์รูปเฟส, ปั้มไลค์รูป Facebook, ปั้มโพสต์, Pump Like, ปั้ม Like ฟรี, กดไลค์รูป, กดไลค์แฟนเพจ, เพิ่มไลค์ฟรี, รับทำเพจสินค้าพร้อมยอดไลค์, ปั้มไลค์ Facebook, บริการปั้มไลค์แฟนเพจฟรี, ปั้มไลค์ฟรี, เพิ่มไลค์เพจ, ปั้มไลค์แฟนเพจ, กด Like, รับปั้มไลค์เพจ, บริการปั้มไลค์ฟรี, รับเพิ่มไลค์แฟนเพจ เป็นการโปรโมทแฟนเพจ เพื่อเพิ่มยอดขายสินค้าได้, กดไลค์, ปั่นไลค์, จ้างไลค์, รับทำเพจเฟสบุ๊ค, รับทำไลค์ครบวงจร, เพิ่มไลค์, ปั้มรูป, รับ Like Fanpage, ไลค์เพจ, ปั้มไลค์ครบวงจร, ปั้มไลค์มือถือ, ไลค์คนไทย 100%, รับปั้มไลค์รูป, รับเพิ่มไลค์แฟนเพจเฟสบุ๊ค, ซื้อไลค์แฟนเพจ, เพิ่มไลค์แฟนเพจ, ปั้มไลค์เพจ, รับไลค์แฟนเพจ, รับจ้างเพิ่มไลค์, ไลค์แฟนเพจได้สูงสุดหนึ่งล้านไลค์, รับเพิ่มไลค์, ปั้มไลค์สถานะ, เพิ่มไลค์เพจ ราคาถูก, โกงไลค์, บริการเพิ่มไลค์แฟนเพจฟรี, ปั้มเพจเฟสบุ๊ค, รับไลค์ครบวงจรทั่วไทย, ปั้มไลค์ราคาถูก, ปั้มไลค์รูป, ปั้มไลค์เพจคนไทย, รับเพิ่ม Like Fanpage Facebook ราคาพิเศษ เหมาะสำหรับผู้ที่ต้องการเพิ่ม Like Fanpage ให้ดูเป็นความน่าเชื่อถือของร้าน, จ้างกดไลค์, ไลค์แฟนเพจราคาถูก, รับทำไลค์แฟนเพจจำนวนมาก, จ้างปั้มไลค์, การเพิ่ม Like เป็นการเพิ่มโอกาสทางการขายสินค้าของคุณนั่นเอง ด้วยงานบริการเพิ่มไลค์แฟนเพจระดับมืออาชีพ ประสบการณ์การทำงานหลายปี, แฟนเพจพร้อมยอดไลค์, ปั้มไลค์เพจฟรี, ปั้มยอดไลค์เป็นคนไทย 100%, จ้างไลค์รูป, เพิ่มไลค์แฟนเพจ ราคาถูก, ปั้มไลค์เพจ Facebook, ปั้มเพจ, ปั้มไลค์ทั่วไป, ปั้มไลค์ง่ายๆ, Like Fanpage, ปั้มไลค์เฟสบุ๊ค, ปั้มเพจ เหมาะสำหรับผู้ที่ต้องการยอดไลค์เพจเพจเยอะๆ, Add Like Fanpage, เพิ่มไลค์คนไทย, เพิ่ม Like, ไลค์แฟนเพจเฟสบุ๊ค, รับจ้างกดไลค์, ไลค์แฟนเพจ, รับจ้างปั้มไลค์, จ้างเพิ่มไลค์, บริการเพิ่มไลค์เฟสบุ๊คให้แฟนเพจ, ปั้มไลค์, บริการเพิ่ม Like ให้แฟนเพจของคุณ โดยทีมงานระดับมืออาชีพ ในระยะเวลาอันสั้นและราคาถูก รับประกันไลค์จากคนไทย 100%, ปั้มไลค์ ในโทรศัพท์, Auto Like, รับสร้างแฟนเพจพร้อมยอดไลค์

  10. ปั้มไลค์แฟนเพจ, Auto Like, เว็บปั้มไลค์, ระบบเพิ่มไลค์, ปั้มไลค์, Hack Like Facebook, ปั้มไลค์คอมเม้น, แฮกไลค์, ปั้มไลค์รูปภาพ, ออโต้ไลค์

  11. บริการปั้มไลค์, รับเพิ่มยอดไลค์แฟนเพจ, ซื้อไลค์แฟนเพจ, ซื้อไลค์แฟนเพจคนไทย, รับกดไลค์เพจ

  12. เพิ่มไลค์เพจ ราคาถูก, เพิ่มไลค์แฟนเพจ, ไลค์เพจ, ปั๊มไลค์แฟนเพจ, ปั๊มไลค์เพจ, เพิ่มไลค์เพจ, ปั้มไลค์แฟนเพจ, ปั๊มไลค์เพจ facebook, ปั้มไลค์เพจ, ปั๊มไลค์เพจ, ปั้มเพจ

  13. Photo Auto Liker, Autoliker Facebook, Photo Liker, autoliker, Auto Like, Facebook Liker, auto like, auto liker, Autoliker, Fb Autoliker, Status Auto Liker, Autoliker, Working Auto Liker, facebook auto liker, Status Liker, autolike, Facebook Auto Liker, Auto Liker, Facebook Autoliker, Increase Facebook Likes

  14. Get a quote for your vehicle and confirm the payment method. If you want cash, we will draw cash from bank for you and pay you in your hands right at the moment of the towing process. If you want online account transfer, get us the required credentials to get the process going.

  15. Wonderful items from you, man. I’ve understand your stuff previous to and you are just extremely wonderful.
    I actually like what you’ve received here, really like what you are stating and the way in which by which
    you are saying it. You’re making it entertaining and
    you still care for to keep it sensible. I can not wait
    to read far more from you. That is actually a great website.

  16. fantastic post, very informative. I wonder why the other specialists of this sector don’t notice this. You must continue your writing. I’m sure, you’ve a great readers’ base already!

  17. Generally I don’t read article on blogs, but I would like to say that this write-up very compelled me to try and do it! Your writing taste has been amazed me. Thanks, very nice post.

  18. Pretty nice post. I just stumbled upon your blog and wished to say that I have truly enjoyed browsing your blog posts. After all I will be subscribing to your feed and I hope you write again soon!

  19. My developer is trying to convince me to move to .net from PHP. I have always disliked the idea because of the costs. But he’s tryiong none the less. I’ve been using Movable-type on a variety of websites for about a year and am worried about switching to another platform. I have heard excellent things about blogengine.net. Is there a way I can import all my wordpress posts into it? Any kind of help would be greatly appreciated!

  20. It’s remarkable to go to see this site and reading the
    views of all mates about this piece of writing, while I am also
    keen of getting familiarity.

  21. We’re a group of volunteers and opening a new scheme in our community.

    Your website offered us with valuable information to work on. You have done an impressive task and our whole neighborhood might be thankful
    to you.

  22. Hello would you mind sharing which blog platform you’re
    using? I’m going to start my own blog soon but I’m having a
    hard time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs and I’m
    looking for something unique. P.S Sorry for getting off-topic but I had to ask!

  23. Oh my goodness! a tremendous article dude. Thank you Nonetheless I’m experiencing challenge with ur rss . Don’t know why Unable to subscribe to it. Is there anyone getting identical rss problem? Anyone who knows kindly respond. Thnkx

  24. I spent four years trying EVERYTHING in Online Dating, and through a huge amount of trial and error, I produced a system that I will share for you. This book will take you, step by step, through everything you need to know to double, triple or even quadruple the number of women you meet online.

  25. I have been browsing online more than 3 hours these days,
    but I never discovered any interesting article like yours.
    It is beautiful value sufficient for me. Personally, if all webmasters
    and bloggers made excellent content as you probably did, the net
    can be much more helpful than ever before.

  26. For having lived long, I have experienced many instances of being obliged, by better information or fuller consideration, to change impressions, even on big subjects, which I once thought right but found to be otherwise.

  27. Hi, i think that i saw you visited my weblog thus i came to ?return the favor?.I’m attempting to find things to improve my website!I suppose its ok to use a few of your ideas!!

  28. It is the best time to make some plans for the long run and it’s time
    to be happy. I’ve read this publish and
    if I may I wish to recommend you few attention-grabbing issues or advice.
    Maybe you can write subsequent articles referring to this article.
    I wish to learn more things approximately it!

Leave a Reply

Your email address will not be published.