我试图在WPF中复制这些产品卡。
这就是我想要的结果:
的数据
我已经设法创建卡,但我有问题时,试图歪斜的矩形是在卡上,这是我的代码:
<Border
Width="198"
Height="268"
Margin="389,134,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Background="#FFCCCCCC"
BorderThickness="1,1,1,1"
CornerRadius="12,12,12,12">
<Grid>
<Grid Margin="44,-15,-58,81" RenderTransformOrigin="0.5,0.5">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="199" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="-1" ScaleY="-1" />
<SkewTransform />
<RotateTransform />
<TranslateTransform />
</TransformGroup>
</Grid.RenderTransform>
<Grid.OpacityMask>
<VisualBrush Visual="{Binding ElementName=myBorder}" />
</Grid.OpacityMask>
<Border
x:Name="myBorder"
Grid.Row="1"
Width="129"
Height="236"
Margin="67,0,0,-92"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Background="#FFF7542E"
BorderBrush="#FFF7542E"
BorderThickness="2"
CornerRadius="0,12,12,12"
RenderTransformOrigin="1,1">
<Border.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1.061" ScaleY="0.992" />
<SkewTransform AngleX="7.578" AngleY="19.685" />
<RotateTransform Angle="5.876" />
<TranslateTransform X="0" Y="-24.4097" />
</TransformGroup>
</Border.RenderTransform>
</Border>
</Grid>
</Grid>
</Border>
字符串
结果是这样的:
这就是我的代码:
的
1条答案
按热度按时间bqujaahr1#
由于整个边界的顶部和底部并不平行,因此仅使用一个边界是不可能做到这一点的。
将所有元素放置在Canvas中也会更理想。
下面是我的实现的一个例子,由一个Canvas和三个子Borders组成。
字符串
的数据
**P.S.**但我宁愿使用几何和绘图为背景创建一个笔刷。