2012-01-01 16 views
5

Ciao e grazie per lo sguardo!Come si scorre una riga della griglia in WPF/XAML?

Sfondo

Ho fatto una piccola applicazione semplice in WPF con un layout griglia costituito da una colonna e due righe. La riga superiore contiene un'etichetta semplice per l'intestazione e la riga inferiore contiene un wrappanel che viene popolato dinamicamente con le miniature delle immagini in fase di runtime. Ecco il codice XAML:

<Window x:Class="HTNavigator.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" WindowState="Maximized" WindowStyle="None"> 
    <Window.Background> 
     <ImageBrush ImageSource="/HTNavigator;component/Images/HNBG.jpg" /> 
    </Window.Background> 
    <Grid > 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="75"/> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 
     <StackPanel Grid.Column="0" Grid.Row="0" Height="50" HorizontalAlignment="Left" Margin="30,10,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="Auto" FlowDirection="LeftToRight" Orientation="Horizontal" > 
      <Label Content="Home Navigator v0.1" FontFamily="Tahoma" FontSize="18" FontWeight="Bold" Foreground="White" /> 
      <Button Content="Close" Height="50" Click="Button_Click"></Button> 
     </StackPanel> 
     <ScrollViewer Grid.Row="1" Name="MyScrollViewer" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> 
      <WrapPanel HorizontalAlignment="Center" Name="spContainer" VerticalAlignment="Top" ClipToBounds="True"></WrapPanel> 
     </ScrollViewer> 
    </Grid> 
</Window> 

Problema

La barra di scorrimento non mostra e lo scorrimento rotella del mouse, inoltre, non funziona. Io inizialmente non ho usato il layout della griglia, e in quel momento questa parte del codice XAML sono comportato come previsto:

<ScrollViewer Name="MyScrollViewer" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> 
      <WrapPanel HorizontalAlignment="Center" Name="spContainer" VerticalAlignment="Top"    ClipToBounds="True" ItemHeight="Auto"> </WrapPanel> 
</ScrollViewer> 

Ora tutto stabilisce in modo corretto, ma non ho ricevuto la mia capacità di scorrimento verticale (non lo faccio vuoi scorrimento orizzontale).

Qualche idea?

Grazie!

Matt

risposta

3

So che è la vigilia di Capodanno, ma non hai niente in WrapPanel e si ha l'altezza della riga su Auto in modo che crescerà per i contenuti. Metti qualcosa nel WrapPanel e imposta l'altezza su *. E togli la Colonna dall'etichetta che si trova all'interno di uno StackPanel.

Nel tuo esempio di "prima che tu avessi una griglia", c'è un Grid.Row. Felice anno nuovo.

+0

Di cosa stai parlando? La vigilia di Capodanno era quasi 14 ore fa !! SCNR :) – ChrisWue

+0

Ah ah, scusa tutti i punti positivi. In realtà, cercare di affrettare questa domanda prima di andare a festeggiare è il problema! Il Wrappanel ottiene il suo contenuto in fase di runtime. Proverò le altre cose che hai menzionato. Grazie! –

+0

Grazie ancora BalamBalam - Buon anno anche a te! –

Problemi correlati