WPF Headered Content Control

时间:2013-08-04 01:33:38

标签: wpf layout

美好的一天,

我有一个向导类型应用程序,它在网格的顶行使用HeaderedControlControl,在网格的底行使用Forward,Next,Cancel按钮。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />    <!-- HeaderedContentControl -->
        <RowDefinition Height="40" />   <!-- Navigation Buttwon Row -->
    </Grid.RowDefinitions>


    <Border Grid.Row="0" Grid.Column="0" BorderThickness="1" BorderBrush="#FFF30A0A">
        <HeaderedContentControl Content="{Binding Path=CurrentPage}" ClipToBounds="True"
                                Header="{Binding Path=CurrentPage.Name}"
                                ScrollViewer.CanContentScroll="True" />
    </Border>
</Grid>

向导总共有7个页面,除了其中一个页面的布局外,一切都工作正常。以下是该页面的XAML标记。

    <Grid Name="GridMain">
        <Grid.RowDefinitions>
            <RowDefinition Height="0.5*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <StackPanel Name="StackPanelRow0" Grid.Row="0">
            <TextBlock Padding="5,1,2,3"
                       Style="{StaticResource textblockBoldFont}"
                       Text="{Binding DisplayName}" />
            <TextBlock Padding="5,0,0,0" Text="Execute the Data Import and monitor its progress.  Large files will take longer depending upon network connection." />
        </StackPanel>

        <Grid Name="GridSub"
              Grid.Row="1"
              ShowGridLines="True">
            <Grid.RowDefinitions>
                <RowDefinition Height="0.5*" />
                <RowDefinition Height="0.5*" />
                <RowDefinition Height="0.5*" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>

            <Button Grid.Row="0"
                    Command="{Binding BeginImport}"
                    Content="Import"
                    Style="{StaticResource BeginImport}" />
            <TextBlock Grid.Row="2"
                       Margin="5"
                       Text="Review Information:" />
            <TextBlock x:Name="ImportStatusMesage"
                       Grid.Row="3"
                       Margin="5,0,5,10"
                       FontSize="18"
                       Foreground="#FF00FF00"
                       Style="{StaticResource DataImportCompletedStyle}"
                       Visibility="Collapsed" />

            <!-- PROBLEM OCCURS HERE -->
            <StackPanel Grid.Row="3"
                        Background="#FF92B00E"
                        Orientation="Horizontal">
                <ListBox VerticalAlignment="Stretch"
                         DisplayMemberPath="DisplayPath"
                         ItemsSource="{Binding ImportGroupSelectedFiles}" />
                <TextBlock Margin="10,0,0,0" Text="{Binding FileImportData}" />
            </StackPanel>
        </Grid>
    </Grid>

ListBox最多可包含150个文件。我遇到的问题是,当应用程序最初启动时,窗口的大小是500 x 400.当列表框有那么多文件时,我想看到带有垂直滚动条的列表框。一旦我调整窗口大小,垂直滚动条就会消失。

到目前为止,我已经尝试设置ListBox高度(我不想这样做,因为用户可以调整窗口大小),我也尝试将网格行更改为自动,但这也不起作用。 这是我希望应用程序看起来像:

enter image description here

但这就是它现在的表现:

enter image description here

这是我使用Snoop检查ListBox的布局

的时候

enter image description here

有人有任何建议吗?

TIA,

COSON

0 个答案:

没有答案