1

我在 ContentPresenter 中有一个名为“PART_closeButton”的按钮。我正在为我的按钮定义一些视觉状态。

    <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 加载一些数据模板,其中还包含同名按钮,则视觉状态不再反应。(mouseOver 事件也为该按钮处理并触发)。goToState 不工作。我知道实际的按钮对象正在改变,VisualState 与具有 TargetName 的按钮连接。所以新按钮具有相同的名称,为什么状态管理器不起作用?

4

0 回答 0