2011-06-17 10 views
0

画像ボタンのみを表示するために、デフォルトのボタンスタイルをオーバーライドする必要があります。VisualStateManagerが.NET 4.0(wpf)で動作しないようです

これは完全に機能していますが、私の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> 
+0

マウスでボタンを押すことはできません。これは視覚的な問題ですか?ボタンをクリックした時点で何か他のことが起こると期待していますが、そうではありませんか? –

+0

上記のスタイルiはボタンスタイルです。ボタンを作成し、上記のスタイルを設定します。ボタンは表示されます(枠線やすべてのものはありません)が、そのボタンをクリックすると何も起こりません。しかし、VisualStateGroupを見ると、2ピクセル移動する必要があります。 – BitKFu

答えて

0

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

関連する問題