我正在开发一个非常吸引眼球的程序,我需要为控件添加反射和 3D 深度。
在这两种情况下,我都需要多次绘制控件,但要进行更改:
对于反射,我必须在底部再次重新绘制控件+翻转它。
至于3D深度,只是后面+到侧面的很多副本。
问题是如何获取控件的图像以对其进行修改并将其绘制在其下方/后面?您对此类操作有任何警告和警告/有用的提示吗?(我以前从未尝试过类似的东西)。
非常感谢。
在 WPF 中,您可以使用 aVisualBrush
作为另一个元素(例如 a Rectangle
)的背景/填充。它VisualBrush
有一个Visual
属性,可以绑定到另一个控件以模仿其内容。在此控件上使用变换和 Alpha 蒙版有助于应用反射样式效果。例如:
<StackPanel Width="200">
<TextBox x:Name="tb">Hello world</TextBox>
<Rectangle Height="40" HorizontalAlignment="Stretch">
<Rectangle.Fill>
<VisualBrush Visual="{Binding ElementName=tb}" />
</Rectangle.Fill>
<Rectangle.RenderTransform>
<ScaleTransform CenterY="20" ScaleY="-1" />
</Rectangle.RenderTransform>
<Rectangle.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#00000000" Offset="0" />
<GradientStop Color="#FFFFFFFF" Offset="1" />
</LinearGradientBrush>
</Rectangle.OpacityMask>
</Rectangle>
</StackPanel>