Xaml WinRT GridView ItemTemplate中的可视状态管理器
是否可以在gridview项目模板中使用VisualStates?如果我通过ItemContainerStyleControlTemplate设置VisualState,我可以使用它们,但这只允许我访问相同级别的项目,包括ContentPresenter。我要做的是更改内容演示器内控件的背景颜色。这里有一个简单的例子,似乎没有任何效果Xaml WinRT GridView ItemTemplate中的可视状态管理器,xaml,windows-8,microsoft-metro,windows-runtime,Xaml,Windows 8,Microsoft Metro,Windows Runtime,是否可以在gridview项目模板中使用VisualStates?如果我通过ItemContainerStyleControlTemplate设置VisualState,我可以使用它们,但这只允许我访问相同级别的项目,包括ContentPresenter。我要做的是更改内容演示器内控件的背景颜色。这里有一个简单的例子,似乎没有任何效果 <GridView x:Name="ItemsGrid" ItemContainerStyle="{StaticResource StyleWhereVis
<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>
//这就是我无法让视觉状态工作的地方
你肯定不能。ItemTemplate基本控件不处理任何鼠标/焦点事件AFAIK。如果可以为默认控件创建模板的副本,但该控件没有定义视觉状态,则无法定义新状态并自动调用它们。在这种情况下,项目模板不知道任何鼠标/焦点/任何信息。没有时间确认所有这些,但99%确定。你肯定不能。ItemTemplate基本控件不处理任何鼠标/焦点事件AFAIK。如果可以为默认控件创建模板的副本,但该控件没有定义视觉状态,则无法定义新状态并自动调用它们。在这种情况下,项目模板不知道任何鼠标/焦点/任何信息。没有时间确认所有这些,但99%确定。谢谢Jeff,你一定是对的。我已经完全抛弃了我的ItemTemplate,并在我的ItemContainerStyle中放置了内容,这完全删除了ContentPresenter。似乎工作如预期。我觉得我做错了什么其他的事情拥有项目模板有什么意义,但如果它有效的话……谢谢Jeff,你肯定是对的。我已经完全抛弃了我的项目模板,并在我的ItemContainer样式中放置了它,这完全删除了ContentPresenter。似乎工作如预期。我觉得我做错了什么其他的有什么意义的项目模板,但如果它工作。。。。