0

Polygon三角形を作成するための WPF/C# プログラムを作成しています。ウィンドウのサイズが変更されたときに再描画したいので、ここに私の 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 に答える