私が作成しているボタンのコントロールテンプレートで、最近流行の「反射」効果を複製しようとしています。
基本的な考え方は、白から透明へのグラデーション塗りつぶしで四角形を作成し、その半透明の四角形の一部を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>