1

いくつかの長方形を並べて描画しようとしましたが、長方形の間におそらく 1 ピクセルのギャップがあります。長方形の SnapsToDevicePixels =true または UseLayoutRounding = true を設定した後は改善されますが、ウィンドウのサイズを変更した後でもギャップが発生します。

長方形の描画に関するコードは次のとおりです。

    protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
    {
        base.OnRenderSizeChanged(sizeInfo);
        DrawRectangle();
    }

    private void DrawRectangle()
    {
        var width = this.grid1.ActualWidth;
        var height = this.grid1.ActualHeight;
        var step = width / 15;
        this.grid1.Children.Clear();
        for (int i = 0; i < 15; i++)
        {
            Rectangle rectangle = new Rectangle();
            rectangle.Width = step;
            rectangle.Height = height;
            rectangle.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            rectangle.Margin = new Thickness(i * step, 0, 0, 0);
            rectangle.Fill = new SolidColorBrush(Colors.Blue);
            rectangle.SnapsToDevicePixels = true;
            //rectangle.UseLayoutRounding = true;
            this.grid1.Children.Add(rectangle);
        }
    }
4

1 に答える 1