C# 如何在Windows10UWP中为模板Gridview设置可视化状态管理器?
我知道VisualStateManager可以在更改大小屏幕UWP时更改控件属性。 但我不知道如何使用Datatemplate Gridview的可视化状态管理器?如何更改属性图像控件、文本块控件?请帮我解决这个问题C# 如何在Windows10UWP中为模板Gridview设置可视化状态管理器?,c#,windows,gridview,windows-10,win-universal-app,C#,Windows,Gridview,Windows 10,Win Universal App,我知道VisualStateManager可以在更改大小屏幕UWP时更改控件属性。 但我不知道如何使用Datatemplate Gridview的可视化状态管理器?如何更改属性图像控件、文本块控件?请帮我解决这个问题 <VisualStateManager.VisualStateGroups> <VisualStateGroup> <VisualState x:Name="Phone"> <VisualSt
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="Phone">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Tablet">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="800" />
</VisualState.StateTriggers>
<VisualState.Setters>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<GridView x:Name="gv" Grid.Row="1" Background="Gray">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding ImageLeague}"
Width="50"
Stretch="None"
VerticalAlignment="Top"
HorizontalAlignment="Left" />
<TextBlock Text="{Binding title}"
FontSize="26"
Foreground="Black"
VerticalAlignment="Top"
HorizontalAlignment="Left"
/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
一种方法是将数据模板包装在UserControl中:
<GridView Width="200" Height="300" x:Name="gv" Grid.Row="1" Background="Gray" ItemsSource="{Binding myList}">
<GridView.ItemTemplate>
<DataTemplate>
<UserControl>
<StackPanel>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="Phone">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MyTextBlock.FontSize" Value="15"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Tablet">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="MyTextBlock.FontSize" Value="25"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Image Source="{Binding ImageLeague}"
Width="50"
Stretch="None"
VerticalAlignment="Top"
HorizontalAlignment="Left" />
<TextBlock x:Name="MyTextBlock" Text="{Binding title}"
Foreground="Black"
VerticalAlignment="Top"
HorizontalAlignment="Left"
/>
</StackPanel>
</UserControl>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
@Marcelo de Aguiar我不知道确切的技术原因,但在“Windows 10开发者指南”中,有人告诉你必须这样做。(很抱歉,我无法正确解释……也许你可以直接问培训师)我尝试过不同的解决方案,但这些都不管用。有了你的代码,它终于可以工作了。你为我节省了很多时间。非常感谢你!