2010-02-09 4 views
1

Je viens d'implémenter ces ToggleButtons en utilisant ControlTemplates qui définissent le contenu de l'image selon IsChecked. Les images sont faites dans Photoshop, mais je les veux comme vecteurs WPF.Comment transformer ces boutons à bascule d'image en boutons à bascule vectoriels?

Les boutons ressemblent à ceux-ci quand isChecked = False:

alt text http://i46.tinypic.com/2q3rsaw.jpg

Et quand IsChecked = True je remplace simplement l'image avec une autre PNG:

alt text http://i50.tinypic.com/2lu868l.jpg

J'ai conçu les images du bouton dans photoshop. Ils ont les couches d'image suivants:

  • forme translucide (un carré avec deux coins arrondis pour les boutons de bord)
  • lignes translucides pour les lignes de division
  • Icône
  • texte
  • gradient translucide pour l'effet de reflet de verre

Je reconnais que ce n'est pas le design le plus flexible et je ratais elle a les mêmes boutons dans une forme vectorielle, mais je n'ai aucune idée sur la façon de le faire.

Voici le XAML d'un des boutons (ne hésitez pas à suggérer d'autres solutions sur la façon de mettre en œuvre les boutons ainsi):

<ControlTemplate x:Key="ResetButtonTemplate" TargetType="{x:Type ToggleButton}"> 
     <Image x:Name="ImageReset" Source="images\button_reset_gray.png"/> 
     <ControlTemplate.Triggers> 
      <Trigger Property="IsChecked" Value="False"> 
       <Setter Property="Cursor" Value="Hand" /> 
      </Trigger> 
      <Trigger Property="IsChecked" Value="True"> 
       <Setter TargetName="ImageReset" Property="Source" Value="images\button_reset_red.png"/> 
       <Setter Property="IsEnabled" Value="False" /> 
       <Setter Property="Cursor" Value="Arrow" /> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 


     <StackPanel Orientation="Horizontal" Margin="20"> 
      <ToggleButton Name="buttonRun" Width="102" Height="102" Template="{StaticResource RunButtonTemplate}" Checked="buttonRun_Checked" /> 
      <ToggleButton Name="buttonPause" Width="102" Height="102" Template="{StaticResource PauseButtonTemplate}" Checked="buttonPause_Checked" /> 
      <ToggleButton Name="buttonReset" Width="102" Height="102" Template="{StaticResource ResetButtonTemplate}" Checked="buttonReset_Checked" /> 
     </StackPanel> 

Répondre

1

Essayez de regarder Expression Studio. Certaines applications de la suite ont la possibilité d'importer des formats Photoshop.

Bien que, dans le pire des cas, la création manuelle de telles images dans Blend n'est pas un gros problème.