2
是否可以在gridview項目模板中使用VisualState?如果通過ItemContainerStyle ControlTemplate設置它們,我可以使用VisualStates,但只允許我訪問同級別的項目幷包括ContentPresenter。我想要做的是更改內容展示器中控件的背景顏色。這是一個簡單的例子,似乎沒有任何效果。WinRT中的視覺狀態管理器GridView項目模板
<GridView x:Name="ItemsGrid" ItemContainerStyle="{StaticResource StyleWhereVisualStatesWork}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate> //This Is Where I Can't Get Visual States To Work
<DataTemplate>
<Grid x:Name="ContainerGrid">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="PointerOver">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="TestBackgroundGrid">
<DiscreteColorKeyFrame KeyTime="0" Value="{StaticResource SomeBrush}"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid x:Name="TestBackgroundGrid" Height="60" Width=60" Background="{StaticResource SomeStandardColourBrush}">
</Grid>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
非常感謝Jeff,您一定是對的。我完全拋棄了我的ItemTemplate,並放置了我的ItemContainerStyle中的所有內容,這完全刪除了ContentPresenter。似乎按預期工作。我覺得我做錯了什麼其他什麼是具有項目模板,但如果它的工作.... – Oli