具有相对尺寸的 RectangleGeometry...怎么样?
我试图在我正在创建的按钮的控制模板上复制当今如此时尚的“反射”效果。
基本思想是创建一个具有从白色到透明的渐变填充的矩形,然后使用矩形几何图形剪辑该半透明矩形的一些部分。
问题是我不知道如何定义相对矩形几何形状。我通过定义一个大值(1000)来解决宽度问题,但高度是一个问题。例如,它对于高度为 200 的按钮效果很好,但对于较小的按钮则不起作用。
有什么想法吗?
<Rectangle RadiusX="5" RadiusY="5" StrokeThickness="1" Stroke="Transparent">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,0.55">
<GradientStop Color="#66ffffff" Offset="0.0" />
<GradientStop Color="Transparent" Offset="1.0" />
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.Clip>
<RectangleGeometry Rect="0,0,1000,60" />
</Rectangle.Clip>
</Rectangle>
I'm trying to replicate the nowadays so fashionable "reflex" effect on a controltemplate for buttons I'm creating.
The basic idea is to create a rectangle with a gradient fill from white to transparent and then clip some of that semi-transparent rectangle with a rectanglegeometry.
The problem is that I don't know how to define a relative rectangle geometry. I kind of worked around width by defining a large value (1000), but height is a problem. For example, it works good for buttons that have a 200 height, but doesn't do anything for smaller buttons.
Any ideas?
<Rectangle RadiusX="5" RadiusY="5" StrokeThickness="1" Stroke="Transparent">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,0.55">
<GradientStop Color="#66ffffff" Offset="0.0" />
<GradientStop Color="Transparent" Offset="1.0" />
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.Clip>
<RectangleGeometry Rect="0,0,1000,60" />
</Rectangle.Clip>
</Rectangle>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
MultiBinding
和新的IMultiValueConverter
来完成此操作:并在 XAML 中像这样使用:
You could do this with a
MultiBinding
and a newIMultiValueConverter
:And used like so in your XAML: