는, 당신은의 GridView의하여 SizeChanged 이벤트에서 수동으로 ItemsWrapGrid의 ItemWidth을 설정해야합니다.
<GridView x:Name="gridView" SizeChanged="onGridViewSizeChanged">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Background="GreenYellow" BorderBrush="Black" BorderThickness="2">
<TextBlock Text="{Binding}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="40"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch"/>
<Setter Property="Margin" Value="0"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<x:String>1</x:String>
<x:String>2</x:String>
<x:String>3</x:String>
<x:String>4</x:String>
<x:String>5</x:String>
<x:String>6</x:String>
<x:String>7</x:String>
<x:String>8</x:String>
</GridView>
private void onGridViewSizeChanged(object sender, SizeChangedEventArgs e)
{
// Here I'm calculating the number of columns I want based on
// the width of the page
var columns = Math.Ceiling(ActualWidth/300);
((ItemsWrapGrid)gridView.ItemsPanelRoot).ItemWidth = e.NewSize.Width/columns;
}
당신은 아마 행동거나 연결된 속성에이 번들 수 :
다음은 예입니다.
시각적 상태에 대한 적응 형 트리거를 잘 알고 있습니까? 지금까지 정확히 무엇을 시도해 보았고 당신을 위해 일하지 않는 것이 무엇입니까? –
네, minWindowWidth를 800으로 설정하는 시각적 상태에 대한 적응 형 트리거를 사용했습니다. 같은 ItemWidth의 Item 속성을 사용하여 MinWidth를 300으로 설정했습니다. 하지만 내가하고 싶은 일은 창 너비 800 이상에서 앱의 창 크기에 따라 항목의 너비를 동적으로 변경하는 것입니다. 내가 직면하고있는 기본 문제는 setter 속성에서 너비를 정의하고 있기 때문에 더 이상 동적이 아닙니다. 어떻게이 문제를 해결합니까 ?? –