2

コントロールの状態に応じて ColorAnimation を発生させようとしています。次のような ToggleButton の ControlTemplate を作成しました。

<ControlTemplate TargetType="ToggleButton">
    <Border>
    <Grid>
        <VisualStateManager.VisualStateGroup>
             <VisualStateGroup x:Name="CommonStates">
                  <VisualState x:Name="MouseOver">
                      <Storyboard>
                           <ColorAnimation Storyboard.TargetName="ColorChangeRect" 
                               Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)"
                               To="Blue" Duration="0:0:3" />
                      </Storyboard>
                  </VisualState>
             </VisualStateGroup>
        </VisualStateManager.VisualStateGroup>
        <Rectangle x:Name=ColorChangeRect" Fill="Red" />
        <ContentPresenter Content="{TemplateBinding Content}" />
    </Grid>
    </Border>
</ControlTemplate>

残念ながら、何も起こっていません。ここで何が欠けているのかわかりません。

4

1 に答える 1

1

VisualStateManager.VisualStateGroupsコード内のテンプレートのルート要素に添付プロパティを配置しますBorderVisualStateManagerがその状態を取得する場所です。

于 2012-08-13T19:36:27.863 に答える