我有一个名为" PART_closeButton"的按钮。在ContentPresenter中。我正在为我的按钮定义一些视觉状态。
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimation Duration="0" To="1"
Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="PART_closeButton" d:IsOptimized="True"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Normal">
<Storyboard>
<DoubleAnimation Duration="0" To="0.7" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="PARTcloseButton" d:IsOptimized="True"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
所以一切都对我有用。当我将鼠标悬停在按钮上时,它变为半透明。 但是,如果我为contentpresenter加载一些datatemplate,它也包含具有相同名称的按钮,则视觉状态不再响应。 (也为该按钮处理mouseOver事件并触发)。 goToState不起作用。 我知道实际的按钮对象正在改变,VisualState与具有TargetName的按钮连接。所以新按钮具有相同的名称,为什么statemanager不工作?