2009-02-13 10 views
5

Ich habe ein Root-Benutzersteuerelement, das 300 hoch ist.Wie erzwingen Sie, dass ein Silverlight-Container auf die Größe seiner untergeordneten Steuerelemente maximiert/verkleinert wird?

Innerhalb, dass ich eine Grenze, die ich auf die Größe der eigenen Steuerelemente erweitern möchte, so wenn ich in mehr Steuerelemente stapeln, wird es erweitern - weniger Steuerelemente, wird es zusammenziehen.

Allerdings, wenn ich es auf „Auto“ es dehnt es sich aus der Größe des ihres übergeordneten Containers anstelle der Größe seines Kind steuert.

Wie kann ich Border auf die Größe seiner untergeordneten Steuerelemente erweitern und verkleinern, so etwas wie die Funktionalität einer HTML-Tabelle?

<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 sowohl für die Frage und die Antwort. Das hat mich aus genau dem entgegengesetzten Grund für die letzte Stunde absolut BONKERS gefahren. Der Wechsel von einem StackPanel zu einem Grid für LayoutRoot erlaubte schließlich, dass mein inneres Grid auf die übergeordnete Größe erweitert wurde. OI VEY. –

Antwort

6

es in einem Stackpanel Wickeln Sie es tun sollten:

<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, das hat funktioniert, danke! –

Verwandte Themen