0

境界線などのない画像ボタンのみを表示するために、デフォルトのボタンスタイルをオーバーライドしたいと思います。

これはすべて完全に機能していますが、XAMLスタイルでVisualStateManagerを定義しましたが、マウスでボタンを押すことはできません。実際、それは何もしません。

私は何を間違えますか?

<!-- Button Style -->
<Style x:Key="WinImageButton" TargetType="Button">

    <Setter Property="BorderBrush" Value="Transparent"/>
    <Setter Property="BorderThickness" Value="0" />
    <Setter Property="Background" Value="Transparent"/>

    <Setter Property="RenderTransform">
        <Setter.Value>
            <TranslateTransform/>
        </Setter.Value>    
    </Setter> 

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <ContentControl x:Name="RootElement">
                    <ContentPresenter 
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        RecognizesAccessKey="True">
                    </ContentPresenter>

                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup Name="CommonStates">
                            <VisualState Name="Normal" />

                            <VisualState Name="Pressed">
                                <Storyboard>
                                    <DoubleAnimation 
                                        Storyboard.TargetName="RootElement"
                                        Storyboard.TargetProperty="(FrameworkElement.RenderTransform).(TranslateTransform.Y)" 
                                                 To="2.0" />
                                    <DoubleAnimation 
                                        Storyboard.TargetName="RootElement"
                                        Storyboard.TargetProperty="(FrameworkElement.RenderTransform).(TranslateTransform.X)" 
                                                 To="-2.0"  />
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>

                </ContentControl >
            </ControlTemplate>

        </Setter.Value>
    </Setter>
</Style>
4

1 に答える 1

0

TranslateTransition を ControlTemplate 自体の内部に移動しようとしましたか? (テンプレートのリソース セクションに配置できます。)

于 2011-10-01T02:11:15.733 に答える