Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在wpf中设置按钮样式的数据属性?_C#_Wpf_Wpf Controls_Styles - Fatal编程技术网

C# 如何在wpf中设置按钮样式的数据属性?

C# 如何在wpf中设置按钮样式的数据属性?,c#,wpf,wpf-controls,styles,C#,Wpf,Wpf Controls,Styles,在此示例属性中: 数据= M150.655, 39.109L10.407, 53.785L0.602, 1.309l158.026-0.806L150.655, 39.109z 这个数据属性如何工作并使用这5个值 <Style x:Key="ButtonStyler" TargetType="{x:Type Button}"> <Setter Property="Cursor" Value="Hand" /> <Setter Proper

在此示例属性中:

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

这个
数据
属性如何工作并使用这5个值

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


数据是模板中路径对象的属性

编辑:

从msdn文档: 数据属性字符串以“moveto”命令开始,由M表示,该命令在画布坐标系中为路径建立起点。路径数据参数区分大小写。大写字母M表示新当前点的绝对位置。小写的m表示相对坐标。第一段是从(100200)开始到(400175)结束的三次贝塞尔曲线,使用两个控制点(100,25)和(400350)绘制。此段由数据属性字符串中的C命令指示。同样,大写字母C表示一条绝对路径;小写的c表示相对路径

第二段以绝对水平“lineto”命令H开始,该命令指定从前面子路径的端点(400175)到新端点(280175)绘制的线。因为它是一个水平“lineto”命令,所以指定的值是x坐标

有关完整的路径语法,请参阅参考和如何

希望这有帮助:)


Ian

与形状和路径几何体相关的数据属性不要直接进入其中,首先只需阅读路径几何体的基础知识,然后您就能够理解任何形状的数据属性。

此msdn路径几何体帮助。。我想知道数据属性中的这5个参数