如何更改肖像模式的VirtualizingStackPanel Margin?

时间:2013-06-01 08:53:06

标签: winrt-xaml

我有以下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的保证金?

1 个答案:

答案 0 :(得分:0)

您无法引用ItemTemplateStoryBoard创建的控件,因为您使用的名称是 ItemTemplate 的名称,而不是控件< em>从模板生成。

在这种情况下,我会对背后的代码中的方向更改作出反应,并在C#中手动更改控件的边距,或者我会绑定 { {1}} {strong}视图模型的属性{1}},并在方向更改时相应地更新该属性。

您选择的解决方案可能取决于您希望在视图模型中添加多少知识。