tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
3828
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    qde qde ist offline Mitglied Silber
    Registriert seit
    Apr 2005
    Beiträge
    66
    Hallo,
    ich sitze grade an meinem ersten WPF-Projekt und komme nicht mehr weiter. Ich habe eine ListView, die einfach keine Scrollbar bekommt. Mein XAML-Code sieht so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
     <StackPanel Margin="8">
            <StackPanel>
            <Label HorizontalAlignment="Center">
            <TextBlock Name="AppTitle" FontSize="18" FontFamily="Verdana" Foreground="Blue" Width="120">Versandbox</TextBlock>   
            </Label>
                <Label HorizontalAlignment="Right" Margin="0,0,10,0">Aktualisierung in ... Minuten</Label>
            <Button Width ="100" HorizontalAlignment="Right" Margin="0,0,10,10" >
                Aktualisieren
            </Button>
            
            
            
            <ListView Grid.Row="1" Name="VersandListbox"
                ItemsSource="{Binding Source={StaticResource versandListBox}}" SelectionMode="Single" MinWidth="1024" MinHeight="900" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" IsSynchronizedWithCurrentItem="True">
     
     <ListView.View>
                    <GridView>
                        <GridViewColumn />
    ....
    </Gridview>
    </ListView.View>
     
      </StackPanel>
    </StackPanel>

    Für Hilfe wäre ich sehr dankbar!
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Du bist das falsch angegangen. Das Problem ist, dass sich das StackPanel in der Größe und der Breite dem Inhalt anpasst. Dadurch geht dir in deinem Fall auch die Scrollbar verloren.

    Was du also machen kannst:
    1. Ersetze das erste StackPanel durch ein DockPanel
    2. Nimm deine ListView aus dem zweiten StackPanel heraus und setze dem zweiten StackPanel die Eigenschaft DockPanel.Dock auf "Top"
    Damit sollte dein Scrollbar wieder da sein. Ach ja, bei der ListView kannst du die Attached Property Grid.Row herausnehmen, da es an dieser Stelle eher nicht sinnvoll ist, zumal eventuell gar kein Grid mehr vorhanden ist.

    Hier nochmal zur Veranschaulichung wie ich den Aufbau meine:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    <DockPanel x:Name="ParentDock" Margin="8" LastChildFill="True">
        <StackPanel DockPanel.Dock="Top">
            <Button Content="Test"/>
            <Button Content="Test2"/>
        </StackPanel>
        <ListView x:Name="DemoBox">
                <ListView.View>
                    <GridView>
                        <GridViewColumn/>
                        <GridViewColumn/>
                        <GridViewColumn/>
                    </GridView>
                </ListView.View>
            </ListView>
    </DockPanel>
     

  3. #3
    Tommig Tommig ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    1
    Hallo Norbert!
    Vorerst danke für deine Antwort. Habe gerade das gleiche Problem gehabt.
    Aber zum Verständnis:
    ListView sollte also nicht in ein StackPanel eingebettet werden, weil das StackPanel sich mit der Höhe des ListViews ausdehnt (im Falle von Orientation="Vertical").
    Aber was macht man, wenn ein Fenster zB folgendermaßen aufgebaut ist:
    Links befindet sich ein Navigationsbereich wie in Outlook, oben eine Werkzeugleiste und den restlichen Datenbereich teilen sich untereinander eine Grafik und 2 Tabellen. Diese 3 Datenbereiche sollen die Fensterhöhe gleichmäßig aufteilen.
    Ich würde es aus dem Bauch heraus so aufbauen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    <DockPanel>
       <StackPanel x.Name="Linker_Navibereich" DockPanel.Dock="Left"  Orientation="Vertical">....</StackPanel>
       <StackPanel x.Name="Werkzeugbereich_oben" DockPanel.Dock="Top" Orientation="Horizontal">...</StackPanel>
       <StackPanel x.Name="eigentlicher_Datenbereich" DockPanel.Dock="Bottom" Orientation="Vertical">
          <Border x.Name="Grafik" >...hier kommt die Grafik...</Border>
          <ListView x.Name="Tabelle_1" ...>
          <ListView x.Name="Tabelle_2"...>
       </StackPanel>
    </DockPanel>

    Oder wäre es vernünftiger, für den Datenbereich ein Grid zu verwenden?
    Danke im Voraus.
    Liebe Grüße
    Tommi
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 17.12.10, 10:47
  2. Scrollbar erzeugt Scrollbar
    Von jpatwork im Forum CSS
    Antworten: 4
    Letzter Beitrag: 24.05.07, 14:00
  3. ListView reagiert nicht auf Scrollbar
    Von Plumpsi im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 01.03.05, 14:57
  4. Antworten: 16
    Letzter Beitrag: 23.12.04, 15:37
  5. Listview
    Von coolfire im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 09.01.04, 21:39