質問

Windows 8.1アプリケーション(.NET 4.5)では、ListViewを含むスタックパネルを含むグリッドを含むグリッドを持っています。 これは、ListViewが利用可能なスペースで拡大縮小されていませんが、代わりにスクロールバーを表示します。

<Grid DataContext="{Binding}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/> <!-- IF I set MinHeight here, it grows -->
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0"/>
    <ListView
            Grid.Row="1"
            Margin="10"
            ItemsSource="{Binding ementas}"
            ItemTemplate="{StaticResource temp1}"
            SelectionMode="None"
            IsItemClickEnabled="False"
            IsSwipeEnabled="False">
    </ListView>
</Grid>
.

ListViewのテンプレート

<StackPanel Width="310" Margin="5,10,5,10" DataContext="{Binding}">
    <TextBlock Text="{Binding data}" Style="{StaticResource TitleTextBlockStyle}"/>
    <ListView SelectionMode="None"
            IsItemClickEnabled="False"
            ItemsSource="{Binding pratos}"
            ItemTemplate="{StaticResource temp2}"
            IsSwipeEnabled="False">
    </ListView>
</StackPanel>
.

と2番目のListViewのテンプレート

<TextBlock Text="{Binding descricao}"
    Margin="5"
    Style="{StaticResource BodyTextBlockStyle}"
    TextWrapping="WrapWholeWords"/>
.

スクリーンショット: screenshot

スクロールバーを使用しているListViewには、コンテンツに合わせるためのサイズスケールがあり、画面スペースがなくなった場合にのみスクロールします。

役に立ちましたか?

解決

これは非常に一般的な問題です... StackPanelのような親コントロールに合わせて、その内容をサイズ変更するために、はその内容をサイズ変更します。解決策は簡単です...いくつかのコントロールの任務を並べる最も簡単なものを除いて、Gridを使用しないでください。これの代わりに、Penterコントロールによって提供されるすべてのスペースに自動的に適合するStackPanelを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top