我有以下GridView
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemGridView"
AutomationProperties.Name="Grouped Items"
Grid.RowSpan="2"
Margin="0,-14,0,0"
Padding="0,0,0,50"
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
ItemTemplate="{StaticResource Standard250x250ItemTemplate}"
SelectionMode="None"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel x:Name="ItemGridViewVirtualizingStackPanel" Margin="120,0,120,0" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
...
在<VisualState x:Name="FullScreenPortrait">
中,我尝试更改保证金
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ItemGridViewVirtualizingStackPanel" Storyboard.TargetProperty="Margin">
<DiscreteObjectKeyFrame KeyTime="0" Value="100,0,20,0"/>
</ObjectAnimationUsingKeyFrames>
但错误显示为Cannot resolve TargetName ItemGridViewVirtualizingStackPanel.
那么如何更改VirtualizingStackPanel的保证金?
答案 0 :(得分:0)
您无法引用ItemTemplate
中StoryBoard
创建的控件,因为您使用的名称是 ItemTemplate 的名称,而不是控件< em>从模板生成。
在这种情况下,我会对背后的代码中的方向更改作出反应,并在C#中手动更改控件的边距,或者我会绑定 { {1}} {strong}视图模型的属性{1}},并在方向更改时相应地更新该属性。
您选择的解决方案可能取决于您希望在视图模型中添加多少知识。