Les deux à cause de cela, le XAML suivant clipsera le troisième élément . p> semble être variablesedizedgrid code> et
welglid code> ont une mesure étrange - ils mesurent tous les enfants en fonction du premier élément.
variablesedizwrapgrid code> mesure le premier élément, puis les enfants de repos sont mesurés avec la taille souhaitée du premier. P> < p> Toute solution de contournement? p> p>
4 Réponses :
Vous devez utiliser les propriétés ci-jointes sur chaque rectangle variablesedizewrappgrid.columnspan et variableseizewrapGrrid.rowspan, ainsi que d'ajouter une itemHeight et itemWidth à la variablesIZEWAPGRID:
<VariableSizedWrapGrid Orientation="Horizontal" ItemHeight="50" ItemWidth="50"> <Rectangle VariableSizedWrapGrid.ColumnSpan="1" VariableSizedWrapGrid.RowSpan="2" Width="50" Height="100" Margin="5" Fill="Blue" /> </VariableSizedWrapGrid>
Son ne peut être pas le meilleur moyen, mais c'est comme ça que je l'ai fait dans mon @metrorsReader App
public string Fix_item_height_for_current_screen_resolution() { var screenheight = CoreWindow.GetForCurrentThread().Bounds.Height; var itemHeight = screenheight < 1000 ? "100" : "140"; return itemHeight; }
Pour utiliser un VariableSizeWrapGrid vous devez créer votre propre contrôle GridView personnalisé et override Voici un beau tutoriel / marcher à travers Jerry Nixon: http: //dotnet.dzone.com/articles/windows-8-beauty-tip-using p> PrepareContainerForItemOverride code> et définissez les éléments rowspan et columnspan à l'intérieur de cette méthode. De cette façon, chaque élément aura sa propre hauteur / largeur. P>
Toute idée de la façon dont on pourrait ajouter si la ligne / Col Spans d'être créée et mise à jour lorsque le modèle change. PREPARECONTAINERFORIREMOVERRIDE n'est pas appelé sur les changements.
réussi à comprendre celui-ci aujourd'hui. Vous devrez utiliser VisualtreeHelperextensens.Cs dans la boîte à outils WinRT XAML ( http://winrtxamltoolkit.codeplex.com a >). Pour moi, j'essayais d'ajuster une liste de liste qui disposait d'une grille d'entretien comme son itemPaneltemplate, le même concept devrait s'appliquer à vous. 1) Joindre à l'événement de mise en forme de votre liste de lecture (c'est-à-dire lorsque vous souhaitez mettre à jour les tailles. ) p> 2) Utilisez Visualtreeehelperextensions.getDescendantsoftype () pour trouver un type d'élément commun (et unique) dans le modèle de données de votre élément (Ex: Un bloc de texte dynamique de largeur): P>
_mylist.layoutupdated + = _mylist_layoutupdated; code> p>
blockQuote>
var wg = _categoryList.GetDescendantsOfType<WrapGrid>();
if (wg == null || wg.Count() != 1)
throw new InvalidOperationException("Couldn't find main ListView container");