C# Xaml kader uitrekken

Status
Niet open voor verdere reacties.

rambomambo

Gebruiker
Lid geworden
9 dec 2012
Berichten
163
Beste

Ik ben dus bezig met een programma te maken voor een wenslijst voor de feestdagen maar
nu zit ik in de knoie met de layout heb dus een stackpanel en een grid genomen en die in mijn xaml gezet alles is goed
tot het moment dat ik het test en het kader groter maak dan is de oorspronkelijke afmeting nog correct maar er rond allemaal grijs.
Nu wil ik dus als ik mijn kader groter maak mijn programma mee vergroot dus zonder dat er grijs rond is

Hoe kan ik dit doen in de xaml ?

alvast bedankt
 
Zet even de xaml die je nu hebt in code tags zodat het wat makkelijker is te kijken wat je precies hebt.
 
<Window x:Class="Wenslijst.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<StackPanel Orientation="Vertical" Background="LightGray" Height="350">
<Label Content="Mijn Wenslijst" Background="Gainsboro"></Label>
<ListBox Name="LbProducten" Width="480" Height="200"></ListBox>
<Grid Background="Blue" Height="150">
<StackPanel Orientation="Vertical" Width="500" Height="30" Background="Beige" Margin="7,10,7,110">
<Label Content="Voeg een item toe aan de lijst"></Label>
</StackPanel>
</Grid>

</StackPanel>

</Window>

ik heb momenteel dit.
Ik weet dat je iets in xaml kan typen waardoor de inhoud mee gaat bij het vergroten van het kader
 
Gebruik * om de hele beschikbare ruimte te gebruiken. je kunt x* definieeren voor verhoudingen:

grid <hok1> height = "*"
grid <hok2> height = "2*"

verdeeld de hoogte in 1/3 voor het bovenste deel en 2/3 voor het onderste deel
 
Als je bijvoorbeeld de width van een listbox zet zul je problemen krijgen met het resizen.
Vrijwel alle layout doe je met margins en paddings te zetten en goed gebruik te maken van de grid/stackpanels.

In je stackpanel (vertical) zal een control de gehele Width tot zich nemen en kun je de afstand aanpassen met de margin.
Bij een grid kun je inderdaad gebruik maken van Auto of * zoals wampier hier al zei. Auto neemt dan zoveel ruimte als nodig is in beslag.


Zelf zou ik hier een grid gebruiken als basis. Hoop dat dit ongeveer is wat je zocht.


Code:
<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="350" Width="525">

    <Grid Background="LightGray">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <TextBlock Text="Mijn Wenslijst" Margin="12,6" Grid.Row="0"/>

        <ListBox Margin="12,0,12,0" Grid.Row="1"/>

        <StackPanel Grid.Row="2" Margin="12,6">
            <TextBlock Text="Voeg een item toe aan de lijst" Margin="0,6" />
            <TextBox MinHeight="25" Margin="0,6"/>
            <Button Content="Toevoegen" MinHeight="25" Width="75" HorizontalAlignment="Right" Margin="0,6"/>
        </StackPanel >
    </Grid>
</Window>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan