Я разделил свой WinMain.xaml на 3 раздела (меню, рамка (для страницы) и строка состояния):
<Window x:Class="myCrazyApp.WinMain"
...
MinHeight="600" MinWidth="1000">
<DockPanel Width="{Binding ActualWidth, RelativeSource = {RelativeSource AncestorType = {x:Type Window}}}"
Height="{Binding ActualHeight, RelativeSource = {RelativeSource AncestorType = {x:Type Window}}}">
<Menu DockPanel.Dock="Top" Height="20">
...MenuItems...
</Menu>
<Frame DockPanel.Dock="Top" Name="WinMain_FrameContent" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left" VerticalAlignment="Stretch" VerticalContentAlignment="Top" Source="Pages\PageOne.xaml" NavigationUIVisibility="Hidden"/>
<StatusBar DockPanel.Dock="Bottom" Background="LightSlateGray" Height="32">
<StatusBar.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="180" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" MinWidth="60"/>
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</StatusBar.ItemsPanel>
<StatusBarItem Grid.Column="0">
<TextBlock Name="WinMain_TB_Log" />
</StatusBarItem>
<Separator Grid.Column="1" />
<StatusBarItem Grid.Column="2">
<ProgressBar Name="WinMain_PB" Value="0" Width="170" Height="16" />
</StatusBarItem>
<Separator Grid.Column="3" />
<StatusBarItem Grid.Column="4">
<Label Content="Status:"/>
</StatusBarItem>
<Separator Grid.Column="5" />
<StatusBarItem Grid.Column="6" Padding="4" HorizontalAlignment="Center">
<TextBlock Name="WinMain_TB_Status" />
</StatusBarItem>
</StatusBar>
</DockPanel>
Тогда у меня есть PageOne.xaml заполнено сеткой данных:
<Page x:Class="myCrazyApp.PageOne"
...>
<DockPanel Background="Beige">
<Label DockPanel.Dock="Top">MyTitle</Label>
<Grid DockPanel.Dock="Top">
<DataGrid x:Name="myDataGrid" x:FieldModifier="public" IsReadOnly="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" MinWidth="500" EnableColumnVirtualization="True" EnableRowVirtualization="True" Margin="0,0,0,171" />
</Grid>
</DockPanel>
1) Строка состояния в главном окне находится не внизу, а под серединой окна и перекрывается страницами содержание. Почему?
2) Страница адаптирует свой размер по горизонтали к размеру основного окна (что правильно), но не адаптируется по вертикали. Почему?
3) Сетка данных на странице не показывает вертикальную полосу прокрутки и не заканчивается горизонтально в своем последнем столбце (вместо этого: она бесконечно растягивается вправо с пустым столбцом / сеткой). Почему?
Извините, что задал 3-4 вопроса за один раз, но я обманываю здесь.
Заранее спасибо!