2013-10-27 128 views

回答

3

這是not the storyboard這動畫MouseOver and Pressed events,而不是border brush for button is updated通過control tempalte triggers。如果你想逃避那些觸發器,unfortunately you have to override the template to remove those triggers from the default template

默認模板可以找到here。您可以在那裏看到負責更新邊框畫筆的觸發器。

只需從默認模板中刪除該觸發器即可。如果您希望將該樣式應用於應用中的所有按鈕,請將樣式放入應用資源中。

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Border x:Name="Border" 
         BorderThickness="1" 
         Background="{TemplateBinding Background}" 
         BorderBrush="{TemplateBinding BorderBrush}"> 
        <ContentPresenter Margin="2" 
            HorizontalAlignment="Center" 
            VerticalAlignment="Center" 
            RecognizesAccessKey="True"/> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
從這個情況下,你想給你的按鈕工具欄按鈕的外觀和感覺,你可以做

除此之外,通過簡單地將工具欄按鈕的風格是這樣 -

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"/>   
0

你也可以使用PreviewMouseLeftButtonDown的處理函數代替ButtonClick

函數將會和上述相同並且命令e.Handled = true;確保動畫不啓動

private void button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
 
     { 
 

 
      //some your code 
 
      e.Handled = true; 
 
     }