【发布时间】:2020-05-14 10:25:42
【问题描述】:
我将 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 个问题,但我是假的,在这里。
提前致谢!
【问题讨论】: