my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
Modificare MaxHeight di una listView dinamicamente
in
.NET Framework
>
Windows Presentation Foundation e WinForms
Ultimo messaggio
bottaxxgp
il 22 gennaio 2009 alle 19:12
13 messaggi
dal 04 gennaio 2007
Ciao a tutti.
Cerco di esporre il mio problema
Window (x:Name Window)
1 |_DockPanel
2 |_Grid
3 |_ScollViewer
4 |_StackPanel (x:Name functionStackPanel)
5 |_Expander1
5 |_Expander2
5 |_Expander3
6 |_Header
6 |_TextBlock
7 |_InlineUIContainer
8 |_ListView
5 |_Expander4
5 |_Expander5
5 |_Expander6
Ho aggiunto in testata un numero che rappresenta il livello dei controlli visto che in anteprima tutto mi si collassa (e non sono in grado di abilitare HTML)
Ho una finestra che contiene diversi Expander allineati alcuni di
questi (3-4-5) contengono una listView con diversi elementi.
Se per esempio apro l'expander 3 e la lista continene molti elementi mi capita che questi escano dallo schermo.
Volevo limitare la MaxHeight di ogni listview degli expander in modo tale da avere sempre il massimo di elementi visibili senza uscire dallo schermo
L'altezza della finestra(Windows) meno quella dello stack panel (functionStackPanel) mi dice quanto spazio mi è rimasto fino alla fine della finestra.
Allora avevo pensato di fare un binding al MaxHeight delle ListView con un converter che mi calcolava questo valore, ma mi viene applicato prima che l'expander si sia aperto e quindi con un valoredell stackpanel errato.
Ovviamente c'è un controllo che se il valore calcolato risulta troppo piccolo viene assegnata un'altezza minima.
Il problema è che verrebbe fatto per ogni Expander anche se non espanso.
qualche suggerimento per implementare questa funzionalità?
Modificato da bottaxxgp
il 22 gennaio 2009 20.02 -
Rispondi
Quoting
Ricciolo
il 23 gennaio 2009 alle 11:50
5.561 messaggi
dal 26 febbraio 2001
Contributi
blogs.aspitalia.com
|
Blog
Io farei una specializzazione dello StackPanel. Fai una tua classe che eredita e sovrascrivi MeasureOverride e ArrangeOverride. Lì puoi chiedere all'expander quanto vuole (il MaxHeight influenza questa valore ma tu non usarlo). Nell'arrange poi puoi forzare quando è alto.
Se hai dubbi su come fare, guarda con reflector il codice originale dello StackPanel. Guarda anche una breve spiegazione qua
http://blogs.aspitalia.com/ricciolo/post1654/WallPanel-WPF-Disposizione-Muro.aspx
Ciao
Il mio blog
Homepage
Rispondi
Quoting
bottaxxgp
il 27 gennaio 2009 alle 20:04
13 messaggi
dal 04 gennaio 2007
Sono un novellino e non sono molto esperto. Fino ad ora il mio approccio WPF si è limitato a semplici binding sui controlli, ma ora non penso bastino più.
Ho provato (prima del tuo consiglio) a lavorare sul MaxHeight delle liste ma il risultato non è il massimo.
LA mia finestra è un pannello a scorrimento laterale.
____________
|
|
| A
|
____________
|
|
| B
|
|
____________
La parte A ospita tutti i miei controlli ed expander
La parte B invece è la parte "vuota" del mio pannello
Vorrei che liste al massimo si allargassero dello spazio B
Questo sia quando apro i vari expander ed anche quando cambio risoluzione dello schermo.
Nella prova cheho fatto io ho fatto un converter che calcola il maxheight come differenza tra il contenitore (a+B)StackPanel e scrollviewer per ogni listview interessata ma non è il max.
Le liste non hanno limite all'inizio MaxHeight = +infinito quindi quando le imposto cambia l'altezza e quindi mi riparte ancora il converter e quindi mi trovo a ciclare all'infinito....
Riesci a fornirmi un indizio in più per un più che principiante?
Grazie e ciao
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
Ordinamento Colonne Datagridview
(2)
metodo process per stampare più copie.
(2)
Attivare una PageFunction
(1)
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Web Camp - ASP.NET MVC 3 (Community Days 2012)
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Effettuare il backup dell'event viewer con LINQ to XML
Aprire una popup in Silverlight
Introduzione ad Entity Framework
Disegnare un'applicazione a servizi con Entity Framework e WCF
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Aprire una popup in Silverlight
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Metro Style App per Windows 8 con HTML e Javascript
Aggiungere un handler globale per le chiamate AJAX di ASP.NET MVC
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network