2009-09-15 6 views
1

Dans cette propriété exemple:comment définir la propriété de données pour le style de bouton dans wpf?

Data= M150.655, 39.109L10.407, 53.785L0.602, 1.309l158.026-0.806L150.655, 39.109z

Comment ce Data travail de propriété et d'utiliser ces 5 valeurs?

<Style x:Key="ButtonStyler" 

    TargetType="{x:Type Button}"> 
<Setter Property="Cursor" 
     Value="Hand" /> 
<Setter Property="Template"> 

    <Setter.Value> 
    <ControlTemplate 
     TargetType="{x:Type Button}"> 
     <Grid> 

     <Path x:Name="ButtonBG" 
       Fill="Lime" 
       Stroke="#000000" 
       StrokeThickness="3" 

       Data="M150.655,39.109L10.407,53.785L0.602,1.309l158.026-0.806L150.655,39.109z" /> 
     <ContentPresenter x:Name="ContentSite" 
          Margin="20,10,20,10" 
          VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
          TextBlock.FontFamily="Comic Sans MS" 
          TextBlock.FontSize="20"> 
      <ContentPresenter.RenderTransform> 
      <TransformGroup> 
       <TransformGroup.Children> 
       <TransformCollection> 
        <RotateTransform Angle="-5" /> 
        <ScaleTransform ScaleX="1.5" 
            ScaleY="1" /> 
        <TranslateTransform X="-35" 
             Y="0" /> 
       </TransformCollection> 
       </TransformGroup.Children> 
      </TransformGroup> 
      </ContentPresenter.RenderTransform> 
     </ContentPresenter> 
     </Grid> 
     <ControlTemplate.Triggers> 
     <Trigger Property="IsMouseOver" 
       Value="true"> 
      <Setter Property="Path.Fill" 
        Value="yellow" 
        TargetName="ButtonBG" /> 
     </Trigger> 
     <Trigger Property="IsPressed" 
       Value="true"> 
      <Setter Property="Path.Fill" 
        Value="lime" 
        TargetName="ButtonBG" /> 
     </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 
    </Setter.Value> 
</Setter> 
<Style.Triggers> 
    <Trigger Property="IsMouseOver" 
      Value="true"> 
    <Setter Property="RenderTransform"> 
     <Setter.Value> 
     <TransformGroup> 
      <TransformGroup.Children> 
      <TransformCollection> 
       <RotateTransform Angle="-5" /> 
       <TranslateTransform X="-5" 
            Y="0" /> 
      </TransformCollection> 
      </TransformGroup.Children> 
     </TransformGroup> 
     </Setter.Value> 
    </Setter> 
    </Trigger> 
    <Trigger Property="IsPressed" 
      Value="true"> 
    <Setter Property="RenderTransform"> 
     <Setter.Value> 
     <TransformGroup> 
      <TransformGroup.Children> 
      <TransformCollection> 
       <RotateTransform Angle="-5" /> 
       <TranslateTransform X="-5" 
            Y="5" /> 
      </TransformCollection> 
      </TransformGroup.Children> 
     </TransformGroup> 
     </Setter.Value> 
    </Setter> 
    </Trigger> 
</Style.Triggers> 

Répondre

2

Données du moins associées aux formes et la géométrie du chemin DonT aller dierectly en, d'abord de lire les bases de la géométrie du chemin, vous serez en mesure de comprendre la propriété des données de toute forme ..

3

Les données sont une propriété de l'objet chemin dans votre modèle ...

http://msdn.microsoft.com/en-us/library/ms745814.aspx

modifier:

De l'doco msdn: L'attribut de données chaîne commence par la commande "moveto", indiquée par M, qui établit un point de départ pour le chemin dans le système de coordonnées du Can vas. Les paramètres de données de chemin sont sensibles à la casse. La lettre M majuscule indique un emplacement absolu pour le nouveau point actuel. Une m minuscule indiquerait les coordonnées relatives. Le premier segment est une courbe de Bézier cubique commençant à (100,200) et se terminant à (400,175), dessinée en utilisant les deux points de contrôle (100,25) et (400,350). Ce segment est indiqué par la commande C dans la chaîne d'attributs de données. Encore une fois, la capitale C indique un chemin absolu; le c en minuscule indiquerait un chemin relatif.

Le deuxième segment commence par une commande "lineto" horizontale absolue H, qui spécifie une ligne tirée du point de terminaison du sous-trajet précédent (400, 175) vers un nouveau point final (280, 175). Comme il s'agit d'une commande "lineto" horizontale, la valeur spécifiée est une coordonnée x.

Pour la syntaxe du chemin d'accès complet, voir la référence Data et comment : Create a Shape by Using a PathGeometry.

Hope this helps :)

Ian

+1

cette aide msdn pour la géométrie de chemin .. je veux savoir sur ces 5 paramètres dans la propriété de données –

+0

mise à jour de réponse ... – kiwipom

Questions connexes