Toon posts:

[Silverlight] ItemsControl in WrapPanel = verticaal stacken?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0Henk 'm!

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 18-05 09:06

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Ik heb weer eens wat raars. Ik was er zo mee bezig dat ik er mijn zondagmiddag even aan gewaagd heb. Maar ik kom er niet uit.

Ik heb in principe het volgende:
XML:
1
2
3
4
5
6
7
<ScrollViewer>
<WrapPanel>
<Button />
<Button />
<Button />
</WrapPanel>
</ScrollViewer>


Dit gaat goed en heb ik op een andere locatie ook al zo in gebruik, om GroupBoxen mooi naast elkaar (en wanneer nodig onder elkaar) te laten flowen. Same shit met deze knoppen, zou je denken. Niet.

Maar, onze content wordt dynamisch opgebouwd, dus heb ik die Button vervangen door een ItemsControl.
Dat is zover de enige manier die ik ken.

XML:
1
2
3
4
5
<ScrollViewer>
<WrapPanel>
<ItemsControl ItemsSource="{Binding DummyItems}" ItemTemplate="{StaticResource DummyItem}"/>
</WrapPanel>
</ScrollViewer>


Aan de ItemTemplate zit een DataTemplate gekoppeld die simpelweg weer de Button in zich heeft.
Maar wat verbaast me nou: zodra ik die drie buttons vervang door 1 itemscontrol, gaan de items spontaan verticaal stacken! Ik wil ze horizontaal.

Ik heb gekeken naar de breedte van de ItemsControl. Ook als ik die zet, gewoon op 500 ofzo, en een button op 100, dan stackt hij ze lustig onder elkaar, maar wel gecentreerd op een veld van 500 pixels breed. What happened to naast elkaar zetten?

- weet iemand waarom dit gebeurt en hoe ik kan zorgen dat ze naast elkaar gaan staan, en bij overflow onder elkaar doorgaan?
- weet iemand een alternatief voor zo'n itemspanel, dat wél luistert?

Hulp is welkom :)

heidiulrich.nl | adventura.nl / eigenzinnige rugzakavonturen in europa


Acties:
  • 0Henk 'm!

Anoniem: 146163

Probeer dit eens:
code:
1
2
3
4
5
6
7
8
9
10
11
12
     <ScrollViewer>
            <ItemsControl>                
                <Button Width="100" Height="20" />
                <Button Width="100" Height="20" />
                <Button Width="100" Height="20" />
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>
     </ScrollViewer>


Een ItemsControl is eigenlijk een heel minimale implementatie van een control dat een items source om kan zetten naar een verzameling controls. Net als een ListBox e.d. Het verschil met de uitgebreidere items controls zit em voornamelijk in de defaults voor o.a. de control waar de items in geplaatst worden en andere behaviours.

Ik ben erg slecht in dit uitleggen merk ik :P

Acties:
  • 0Henk 'm!

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 18-05 09:06

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Jeeuuj *O*
Het werkt! Duizendmaal dank :)

heidiulrich.nl | adventura.nl / eigenzinnige rugzakavonturen in europa


Acties:
  • 0Henk 'm!

Anoniem: 146163

Dark Blue schreef op zondag 05 juni 2011 @ 16:45:
Jeeuuj *O*
Het werkt! Duizendmaal dank :)
Geen dank. Mocht je nou echt willen weten hoe XAML werkt binnen silverlight dan wel WPF kan ik de (betaalde) webcasts van Plural Sight aanraden. Ik heb deze toen met een gratis maand abonnement gekeken, en het heeft me enorm geholpen.
Daarnaast is XamlPad ook extreem handig om XAML uit te proberen zonder dat je constant visual studio hoeft aan te sporen om nou eindelijk eens wat te gaan doen :P

Acties:
  • 0Henk 'm!

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 18-05 09:06

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Interessant, dank je.

Ik gebruik Kaxaml.
Daarmee blijft het probleem dat je wel zelf een bult buttons in je control kan zetten, maar niet door een bron data aan kan laten leveren. Het probleem trad pas op bij het gebruik van dynamische content via de itemscontrol, dus met een externe editor was ik dan niet geholpen. Ik heb VS en de hele omgeving nodig. :)

heidiulrich.nl | adventura.nl / eigenzinnige rugzakavonturen in europa



Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee