2015-07-24 2 views
2

J'essaie de donner le RepeatButton l'aspect plat sans surcharger le ControlTemplate. Avec la Button régulière, vous pouvez effectuer les opérations suivantes (mais pas avec le RepeatButton):WPF bouton de répétition plat (look ToolBar)

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

Y at-il quelque chose de similaire pour le RepeatButton ou pour ButtonBase? Je suppose que non parce que si vous mettez un RepeatButton dans un ToolBar, il n'y a pas un aspect plat.

Existe-t-il un meilleur moyen de donner un aspect plat au RepeatButton autre que de surcharger ControlTemplate?

+0

Avez-vous essayé les styles? –

+1

Pour ma situation, c'est ce que j'ai fini par faire (Style qui définit le Template) mais j'espérais en quelque sorte utiliser un style existant pour réduire la duplication. Je crois que Button et RepeatButton sous-classe ButtonBase aurait été génial si le ToolBar.ButtonStyleKey ciblait ButtonBase au lieu de Button. – KornMuffin

+0

@KornMuffin Pourriez-vous répondre à cette question avec votre style? –

Répondre

0

est ici ce qui est venu avec un style RepeatButton plat avec un chemin comme contenu:

<Style x:Key="RepeatButtonFlat" TargetType="{x:Type RepeatButton}"> 
    <Setter Property="OverridesDefaultStyle" Value="true"/> 
    <Setter Property="Focusable" Value="false"/> 
    <Setter Property="IsTabStop" Value="false"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type RepeatButton}"> 
       <Border Background="Transparent" Height="14" Width="14"> 
        <Path HorizontalAlignment="Center" VerticalAlignment="Center" Stretch="Uniform" Margin="2" 
          Data="{Binding Path=Content, RelativeSource={RelativeSource TemplatedParent}}" /> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Exemple d'utilisation:

<RepeatButton Style="{StaticResource ScrollBarLineButton}" Content="M0,0 L1,0 .5,-.5 Z"/>