C# VisualStateManager.gostate不';无法使用数据模板
我有一个列表框,下面的C# VisualStateManager.gostate不';无法使用数据模板,c#,xaml,blend,visualstatemanager,visualstates,C#,Xaml,Blend,Visualstatemanager,Visualstates,我有一个列表框,下面的DataTemplate设置为ItemTemplate,我想使用Codebehind更改它的VisualState 数据模板: <DataTemplate x:Key="SortedRecommendationTemplate"> <Border x:Name="asds"> <VisualStateManager.VisualStateGroups> <VisualStateGrou
DataTemplate
设置为ItemTemplate
,我想使用Codebehind更改它的VisualState
数据模板:
<DataTemplate x:Key="SortedRecommendationTemplate">
<Border x:Name="asds">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="OnlyNameState">
<Storyboard>
...
</Storyboard>
</VisualState>
<VisualState x:Name="OnlyImageState"/>
<VisualState x:Name="AllInfoState">
<Storyboard>
...
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid>
...
</Grid
</Border>
</DataTemplate>
...
...
...
这是因为边框
不是控件
,而是框架元素
<代码>VisualStateManager.gostate(控件控件、字符串stateName、bool-usetransforts)
但是仅适用于控件
您可以使用Microsoft.Expression.Interactivity.Core中的
ExtendedVisualStateManager.GoToElementState(FrameworkElement根、字符串stateName、bool-UseTransforts)
。我猜这是Blend内部使用的。这是因为边框
不是控件
,而是框架元素
<代码>VisualStateManager.gostate(控件控件、字符串stateName、bool-usetransforts)但是仅适用于控件
您可以使用Microsoft.Expression.Interactivity.Core中的ExtendedVisualStateManager.GoToElementState(FrameworkElement根、字符串stateName、bool-UseTransforts)
。我想这是Blend内部使用的
var blub = FindChild<Border>(listBox, "asds");
VisualStateManager.GoToState(blub, "AllInfoState", true);
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<ei:GoToStateAction StateName="AllInfoState" TargetObject="{Binding ElementName=asds}"/>
</i:EventTrigger>
<i:EventTrigger EventName="MouseLeave">
<ei:GoToStateAction StateName="OnlyNameState" TargetObject="{Binding ElementName=asds}"/>
</i:EventTrigger>