0

我正在制作一个 WPF/C# 程序Polygon来制作一个三角形。当我的窗口大小改变时,我希望它被重绘,所以这是我的 WPF:

<Polygon  Name="Plg" Grid.Row="1" Grid.Column="1" Stroke="Red" StrokeThickness="1">
    <Polygon.Fill>
        <SolidColorBrush Color="White" />
    </Polygon.Fill>
</Polygon>

这是我在Window_SizeChanged事件中的代码:

private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{        
    Plg.Points.Clear(); 
    Plg.Points.Add(new Point(Plg.ActualWidth / 2 , 0));
    Plg.Points.Add(new Point(2, Plg.ActualHeight));
    Plg.Points.Add(new Point(Plg.ActualWidth, Plg.ActualHeight));         
}

如果我增加窗口的大小,效果很好,但如果我尝试减小它,三角形会保持它拥有的最大尺寸。我也尝试使用RenderSize,但结果是一样的。

这是一个错误,还是我做错了什么?

4

1 回答 1

0

使用此 XAML,它可以工作:(网格在窗口中)

<Grid Name="myGrid">
    <Polygon  Name="Plg" Grid.Row="1" Grid.Column="1" Stroke="Red" StrokeThickness="1">
        <Polygon.Fill>
            <SolidColorBrush Color="Black" />
        </Polygon.Fill>
    </Polygon>
</Grid>

像这样更改您的代码:

private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{        
    Plg.Points.Clear(); 
    Plg.Points.Add(new Point(myGrid.ActualWidth / 2 , 0));
    Plg.Points.Add(new Point(2, myGrid.ActualHeight));
    Plg.Points.Add(new Point(myGrid.ActualWidth, this.ActualHeight));         
}
于 2013-01-25T19:02:36.230 回答