Как заставить контейнер Silverlight расширяться / сжиматься до размера его дочерних элементов управления? - PullRequest
5 голосов
/ 13 февраля 2009

У меня есть корневой UserControl, который имеет высоту 300.

Внутри меня есть граница, которую я хочу расширить до размеров собственных элементов управления, поэтому, если я добавлю больше элементов управления, она будет расширена - меньше элементов управления, она сократится.

Однако, когда я установил его на «Авто», он расширяется до размера его родительского контейнера вместо размера его дочерних элементов управления .

Как заставить Border расширяться и сжиматься до размеров дочерних элементов управления, что-то вроде функциональности таблицы 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>

1 Ответ

6 голосов
/ 13 февраля 2009

Оберните это в StackPanel должно сделать это:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...