2009-02-13 6 views
5

J'ai un UserControl racine qui est 300 haut. A l'intérieur, j'ai une bordure que je veux étendre à la taille de ses propres contrôles, donc si je empile plus de contrôles, il se développera - moins de contrôles, il se contractera.Comment forcer un conteneur Silverlight à développer/réduire la taille de ses contrôles enfants?

Cependant, quand je l'ai mis sur « Auto », il l'étend sur la taille de son conteneur parent au lieu de la taille de ses contrôles enfant .

Comment est-ce que Border peut développer et réduire la taille de ses contrôles enfants, quelque chose comme la fonctionnalité d'un tableau HTML?

<UserControl x:Class="Second105.Page" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
    Width="400" Height="300"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <Border 
      Background="Tan" 
      CornerRadius="10" 
      Padding="10" 
      Width="300" 
      Height="Auto"> 
     <StackPanel> 
       <TextBlock HorizontalAlignment="Center" Margin="0 0 0 5">Please select a <Run FontStyle="Italic">week day</Run>:</TextBlock> 
      <basics:Calendar 
       Name="theCalendar" 
       SelectedDatesChanged="Calendar_SelectedDatesChanged"/> 
      <TextBlock 
       Name="theMessage" 
       Margin="0 10 0 0" 
       HorizontalAlignment="Center" 
       Text="..."/> 
     </StackPanel> 
     </Border> 
    </Grid> 
</UserControl> 
+0

+1 pour la question et la réponse. Cela m'a conduit absolument BONKERS pour la dernière heure pour la raison inverse. Passer d'un StackPanel à la Grid pour LayoutRoot a finalement permis à ma grille interne de s'étendre à la taille parente. OI VEY. –

Répondre

6

envelopper dans un StackPanel devrait le faire:

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" 
    Height="300"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <StackPanel> 
     <Border 
      Width="300" 
      Height="Auto" 
      Background="Tan" 
      CornerRadius="10" 
      Padding="10"> 
      <StackPanel> 
       <TextBlock HorizontalAlignment="Center" Margin="0 0 0 5">Please select a 
        <Run FontStyle="Italic">week day 
        </Run>: 
       </TextBlock> 
       <TextBlock 
        Name="theMessage" 
        HorizontalAlignment="Center" 
        Margin="0 10 0 0" 
        Text="..."/> 
      </StackPanel> 
     </Border> 
     </StackPanel> 
    </Grid> 
</UserControl> 
+0

Bingo, cool, ça a marché, merci! –

Questions connexes