Я создал эффект глянцевой панели, который выглядит следующим образом:
Это XAML:
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="200" Width="300">
<StackPanel Orientation="Vertical">
<StackPanel.Background>
<DrawingBrush>
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,1,1"></RectangleGeometry>
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<SolidColorBrush Opacity="0.5" Color="Blue" />
</GeometryDrawing.Brush>
</GeometryDrawing>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<PathGeometry>
<PathGeometry.Figures>
<PathFigureCollection>
<PathFigure IsClosed="True" StartPoint="0,0">
<PathFigure.Segments>
<PathSegmentCollection>
<LineSegment Point="0.3,0" />
<LineSegment Point="0.2,1" />
<LineSegment Point="0,1" />
<LineSegment Point="0,0" />
</PathSegmentCollection>
</PathFigure.Segments>
</PathFigure>
</PathFigureCollection>
</PathGeometry.Figures>
</PathGeometry>
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Offset="0.0" Color="Transparent" />
<GradientStop Offset="0.7" Color="#58FFFFFF" />
<GradientStop Offset="1.0" Color="#AFFFFFFF" />
</LinearGradientBrush>
</GeometryDrawing.Brush>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</StackPanel.Background>
</StackPanel>
</Window>
Теперь, если я изменю размеры этого окна до половины высоты, блеск наклонится под другим углом, чем раньше:
Я понимаю, что приведенный выше код должен работать примерно так, и мой вопрос: как мне создать такой же эффект, чтобы угол сегмента полигона сохранялся при изменении размера? Желаемый конечный результат для изменения размера на половину высоты: