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 のボタンに接続されています。新しいボタンには同じ名前が付いているのに、statemanager が機能しないのはなぜですか?