1

LastChildFill = true の DockPanel があります。これには 4 つの子があります: StackPanel (上)、別の DockPanel (上)、およびさらに 3 つの StackPanel (下、左、なし) です。最後の StackPanel ("ResultsPanel") には DockPanel.Dock プロパティが設定されておらず、幅/高さもありませんが、データバインディングの結果、画面に収まらない行が多くなると、下部にドッキングされた StackPanel の後ろに続きます。他のドッキングされた子供たちの間に残した中央の「穴」を埋めることを期待しています。

ScrollBarVisibilities を Auto に設定したままにすると、それらは表示されません。アドバイスをいただければ幸いです。関連するコードは次のとおりです。

   <DockPanel Name="JobsDock" LastChildFill="True">
<StackPanel DockPanel.Dock="Top" Height="40"  >
    <Label />
    <Border CornerRadius="5" Width="90" Height="25" >
        <Label Content="Classic View" />
    </Border>
</StackPanel>
<DockPanel DockPanel.Dock="Top" Height="70" Name="SearchJobsPanel" >
    <ComboBox Name="SearchOptionComboBox" VerticalAlignment="Bottom" Width="240"  />
    <StackPanel Height="50" Name="JobPanel" Width="90" Visibility="Collapsed" VerticalAlignment="Bottom" >
        <Label Content="Job Number" HorizontalAlignment="Center" />
        <TextBox Name="JobTextBox" />
    </StackPanel>   
    <StackPanel VerticalAlignment="Bottom" HorizontalAlignment="Right">
        <Button Height="25" Name="SearchButton" Width="90">
            <StackPanel Orientation="Horizontal">
                <Image  Stretch="Fill" Margin="0,0,5,0" />
                <Label Content="Search" FontSize="10" VerticalContentAlignment="Top"  />
            </StackPanel>
        </Button>
   </StackPanel>
</DockPanel>
<StackPanel  Name="FiltersPanel" DockPanel.Dock="Left" Width="120" Opacity="0" >
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
        <Button Name="ResetFilterButton" >
            <Image Source="Images/ResetFilter.png" Width="30"  />
        </Button>
        <Button Name="ApplyFilterButton"  >
            <Image Width="30"  />
        </Button>                    
    </StackPanel>
    <Label Name="ProjectsLabel"  />
    <Label Name="TasksLabel"  Margin="0,10,0,0" />
</StackPanel>
<StackPanel Name="ResultsPanel" Opacity="0">
    <ListView x:Name="DisplayedJobListView" ScrollViewer.VerticalScrollBarVisibility="Visible" >
        <ListView.View>
            <GridView>
            </GridView>
        </ListView.View>
    </ListView>
</StackPanel>

4

1 に答える 1

1

msdn フォーラムの Jurgen がこの質問に答えてくれました。これが彼の返事です:

やあ、

最後の (入力中の) DockPanel の子は StackPanel ("ResultsPanel") です。StackPanel のレイアウトは、コントロールを含むことによって定義されることはありません (StackPanel の VerticalLayout="Stretch" のように機能するものはありません)。含まれているコントロールを完全に展開するには、常に必要なスペースが必要です。

その StackPanel (独自のスクロール メカニズムを持つ) には子が 1 つしかないため、StackPanel を削除します。

お役に立てれば。

乾杯ユルゲン

于 2013-03-08T13:42:58.213 に答える