gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:44:22 25 4
gpt4 key购买 nike

在此示例属性中:

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

Data 属性如何工作并使用这 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>

最佳答案

数据是模板中 Path 对象的一个​​属性...

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

编辑:

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

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

有关完整的路径语法,请参阅 Data引用和如何: Create a Shape by Using a PathGeometry .

希望这有帮助:)

伊恩

关于c# - 如何在 wpf 中设置按钮样式的数据属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com