n° 219
Novembre 2017
Dicembre 13, 2017, 07:11:32 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: ScrollViewer in UserControl  (Letto 2869 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
alex.75
invioattach
Full Member
***

Karma: +14/-4
Scollegato Scollegato

Messaggi: 357



Mostra profilo WWW
« inserita:: Ottobre 18, 2010, 10:57:16 »

Ho una Window in cui devo mostrare una sezione superiore con dei controlli "statici" ed una sezione sottostante che deve essere riempita con una lista.

Ho usato una Grid in cui setto il numero arbitrario di Row con prorpietà Height settata a "Auto" seguite da una Row con proprietà Height settata su "*".

Poi in questa sezione sottostante (la Row che prende lo spazio rimasto) ho inserito un UserControl che deve contenere una lista "scrollabile" con un bottone in fondo.
Se inserisco nella Row della Window lo ScrollViewer ed in questo il mio UserControl ho l'effetto generale voluto, tranne per il fatto che il bottone sotto la lista è raggiungibile solo scrollando tutta la lista stessa.

Dato che il bottone è bene che sia sempre visibile ho posto lo ScrollViewer intorno alla sola DataGrid che rappresenta la mia lista. In questo modo però il mio UserControl prende tutto lo spazio necessario all'interno della Window, rendendolo di fatto inutilizzabile.
In pratica la lista si estende per tutto lo spazio necessario (lo ScrollViewer non è attivo) e quindi rimane nascosto per quanto riguarda la parte oltre il "margine" della Window risultando totalmente invisibile anche il bottone in fondo alla lista.

Window:
Codice:
                       <Grid Grid.Row="0">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="Auto"></RowDefinition>
                                <RowDefinition Height="*"></RowDefinition>
                            </Grid.RowDefinitions>

... vari controlli sulle righe ...

                                <controls:MyControlGrid.Row="[ultima riga]" />
                        </Grid>

UserControl "MyControl" :
Codice:
   <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>

        <ScrollViewer  Grid.Row="0" >
        <DataGrid Name="gridData" >
                                 ...
        </DataGrid>
        </ScrollViewer>

        <Button Grid.Row="1" Click="btnSimulation_Click">Esegui simulazione</Button>

    </Grid>
In questo modo non ho l'effetto voluto che dovrebbe essere quello di far si che la lista prenda lo spazio "rimanente" e sia scrollabile.

Suggerimenti?

Alessandro
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines