StackPanel компоновка глюк 2 ( GridSplitter )
От: Аноним  
Дата: 17.04.11 08:42
Оценка:
В продолжение еще одна особенность. Допустим нужно вывести 2 таблицы разделенные GridSpliter
Ожидается что обе DataGrid в примере займут равное пространство и разделят окно на 2 части по высоте по 50% каждая ( Heigth = "*")

В случае если в контенте окна будет StackPanel, то GridSplitter не двигается вообще.
А если элементов будет много то разделение по высоте 50х50 не работает ( это особенность когда элементы в stackpanel не видят высоту, о которой было в другом сообщении ).
Если StackPanel заменить на Grid то все работает как ожидается.

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Loaded="Button_Click">
    <StackPanel>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>
            
            <DataGrid Margin="10" ItemsSource="{Binding}" Grid.Row="0"></DataGrid>
            <DataGrid Margin="10" ItemsSource="{Binding}" Grid.Row="2"></DataGrid>
            <GridSplitter Grid.Row="1"  BorderThickness="3" BorderBrush="Silver" HorizontalAlignment="Stretch"></GridSplitter>
        </Grid>       
    </StackPanel>    
</Window>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.