2013-06-01 28 views
0

我有以下的GridView如何更改縱向模式下的VirtualizingStackPanel邊距?

<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

您不能引用從ItemTemplateStoryBoard創建的控件,因爲你使用的名稱是的ItemTemplate從模板生成的名稱,而不是控制(S)。

在這種情況下,我要麼反應的方向性變化的後面的代碼,用手在C#中更改控件的保證金,否則我就綁定VirtualizingStackPanelMargin的屬性查看模型,並在方向更改時相應地更新該屬性。

您選擇的解決方案可能取決於您希望放置在視圖模型中的演示文稿的多少知識。

+0

謝謝,你!現在,我添加了有效佈局的GridView x:Name =「itemGridViewPortrait」 – 1gn1ter

+0

這也許是最簡單的解決方案,但它並不是最佳的性能方式,因爲這樣可視化樹在運行時會增大兩倍。 –

相關問題