Silverlight,VisualStateManager gotostate不适用于datatemplates

时间:2012-12-22 18:32:23

标签: silverlight visualstatemanager

我有一个名为" 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不工作?

0 个答案:

没有答案