Frage

In diesem Beispiel Eigenschaft:

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

Wie funktioniert diese Data Eigenschaft Arbeit und diese 5 Werte verwenden?

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

War es hilfreich?

Lösung

Daten Eigenschaft als im Zusammenhang mit Formen und Weggeometrie direkt in sie nicht gehen, zuerst habe gerade gelesen, die Grundlagen der Bahngeometrie dann werden Sie in der Lage sein, Daten Eigenschaft von jeder Form zu verstehen ..

Andere Tipps

Die Daten sind eine Eigenschaft des Path-Objekts in der Vorlage ...

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

edit:

Von der Msdn doco: Das Datenattribut Zeichenfolge mit dem „moveto“ Befehl beginnt, angezeigt durch M, die für den Pfad in dem Koordinatensystem der Leinwand einen Startpunkt festlegt. Pfaddaten Parameter sind case-sensitive. Die Hauptstadt M zeigt eine absolute Position für die neue aktuelle Position. Ein Klein m würde anzeigen, relative Koordinaten. Das erste Segment ist eine kubische Bezier-Kurve beginnend bei (100,200) und endend bei (400.175), gezogen mit Hilfe der beiden Kontrollpunkt (100,25) und (400.350). Dieses Segment wird durch den C-Befehl in der Datenattributstring angegeben. Auch hier zeigt die Kapital C einen absoluten Pfad; der Klein c einen relativen Pfad angeben würde.

Das zweite Segment beginnt mit einem absoluten horizontal „lineto“ -Befehl H, die eine Linie von der vorhergehenden Subpfad des Endpunkts (400.175) auf einen neuen Endpunkt (280.175) gezogen angibt. Da es sich um eine horizontal „lineto“ Befehl ist, der angegebene Wert ist ein x-Koordinate.

Für die vollständige Pfadsyntax finden Sie in der Daten Referenz und Wie : ein Shape erstellen PathGeometry mithilfe von .

Hope, das hilft:)

Ian

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top