Domanda

In questo esempio proprietà:

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

Come funziona questa proprietà Data e utilizza questi 5 valori?

<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>

È stato utile?

Soluzione

La proprietà dei dati associata alle forme e alla geometria del percorso non entra direttamente in essa, prima leggi le basi della geometria del percorso, quindi sarai in grado di comprendere la proprietà dei dati di qualsiasi forma.

Altri suggerimenti

I dati sono una proprietà dell'oggetto Path nel modello ...

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

modifica:

Dal doco msdn: La stringa dell'attributo Data inizia con " moveto " comando, indicato da M, che stabilisce un punto iniziale per il percorso nel sistema di coordinate della tela. I parametri dei dati del percorso fanno distinzione tra maiuscole e minuscole. La M maiuscola indica una posizione assoluta per il nuovo punto corrente. Una m minuscola indica le coordinate relative. Il primo segmento è una curva cubica di Bezier che inizia a (100.200) e termina a (400.175), disegnata usando i due punti di controllo (100,25) e (400,350). Questo segmento è indicato dal comando C nella stringa dell'attributo Data. Ancora una volta, la C maiuscola indica un percorso assoluto; la lettera minuscola indica un percorso relativo.

Il secondo segmento inizia con un "lineto" orizzontale orizzontale assoluto comando H, che specifica una linea disegnata dall'endpoint del sottotraccia precedente (400.175) a un nuovo endpoint (280.175). Perché è un "lineto" orizzontale comando, il valore specificato è una coordinata x.

Per la sintassi del percorso completo, vedere Dati di riferimento e come : creare una forma utilizzando un PathGeometry .

Spero che questo aiuti :)

Ian

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top