The Artima Developer Community
Sponsored Link

.NET Buzz Forum
WPF, Layouts und verschwundene Scrollleiste

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
-

Posts: 1524
Nickname: nitronic
Registered: Jul, 2006

Norbert Eder works as a software architect.
WPF, Layouts und verschwundene Scrollleiste Posted: Jun 5, 2008 5:21 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by -.
Original Post: WPF, Layouts und verschwundene Scrollleiste
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Latest .NET Buzz Posts
Latest .NET Buzz Posts by -
Latest Posts From Norbert Eder - Living .NET

Advertisement

Das Problem


Ich habe auf meinem Fenster einige Elemente angeordnet. Darunter auch eine ListView. Diese hatte anfangs eine Scrollleiste, aber jetzt ist diese verschwunden? Warum?

Die Lösung


Diese und ähnliche Fragen werden sehr häufig gestellt. In den meisten Fällen liegt es daran, dass die verwendeten Layout-Elemente nicht gut genug bekannt sind und daher ein Fehlverhalten interpretiert wird, wo eigentlich gar keines ist.

Ein sehr verdächtiges Element ist in diesem Zuge das StackPanel. Es verändert seine Größe abhängig der eingebetteten Elemente.

Hier ein kleiner Beispielfall um dies näher zu beschreiben: Wir gehen davon aus, dass es ein StackPanel gibt. Dieses hat als Kindelement eine ListView. Letztere ist an eine Liste gebunden, welche einige hundert Elemente besitzt. Wird nun die Liste gebunden, vergrößert sich die ListView mit jedem Element das hinzugefügt wird. Bei einigen hundert Elementen kann man davon ausgehen, dass nicht mehr alle am Bildschirm angezeigt werden können und deswegen eine Scrollbar durchaus sehr sinnvoll wäre. Tatsächlich ist es nun so, dass sich das Elternelement, also das StackPanel, an die Größe der ListView anpasst und es somit gar nie notwendig wird, die Scrollbar anzuzeigen.
<DockPanel x:Name="ParentDock" Margin="8" 
           LastChildFill="True">
    <StackPanel DockPanel.Dock="Top">
        <Button Content="Click me first"/>
        <Button Content="Do not click me"/>
        <ListView x:Name="DemoBox">
            <ListView.View>
                <GridView>
                    <GridViewColumn/>
                    <GridViewColumn/>
                    <GridViewColumn/>
                </GridView>
            </ListView.View>
        </ListView>
    </StackPanel>
</DockPanel>

In diesem Beispiel ist das StackPanel zwar in ein DockPanel eingebettet, verändert aber dennoch seine Größe, da der Inhalt wesentlich größer ist. So sieht es aus:



In diesem Fall muss auch gar nicht viel verändert werden. Damit die ListView zu ihrer Scrollbar kommt, ist diese lediglich aus dem StackPanel heraus zu nehmen:
<DockPanel x:Name="ParentDock" Margin="8" 
           LastChildFill="True">
    <StackPanel DockPanel.Dock="Top">
        <Button Content="Click me first"/>
        <Button Content="Do not click me"/>
    </StackPanel>
    <ListView x:Name="DemoBox">
        <ListView.View>
            <GridView>
                <GridViewColumn/>
                <GridViewColumn/>
                <GridViewColumn/>
            </GridView>
        </ListView.View>
    </ListView>
</DockPanel>

Damit ist nun das DockPanel für die ListView zuständig und beschränkt deren Größe. Dadurch wird die Scrollbar sichtbar. So sieht’s aus:



Fazit


Durch dieses Problem muss sich jeder durchkämpfen, der mit WPF beginnt. Die Verhaltensweisen sind unterschiedlich zu Windows Forms, in einigen Fällen ähnlich zu ASP.NET. Wichtig ist, sich mit den jeweiligen Layout-Elementen zu beschäftigen und zu lernen, wie sie mit Inhalten umgehen. Mit ein wenig Spielerei sollten dann zukünftig derartige Probleme vermieden werden können. Es warten ohnehin genug andere …

Read: WPF, Layouts und verschwundene Scrollleiste

Topic: Internationaler Comic Salon 2008 Erlangen Previous Topic   Next Topic Topic: Microsoft Forefront Security for SharePoint

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use