位图在面板中未正确对齐

时间:2012-04-19 06:32:45

标签: c# winforms

我一直在谷歌上寻找相当长的一段时间,似乎找不到解决我问题的方法。

问题在于将位图绘制到面板上。由于某些奇怪的原因,整个位图似乎在面板的左上方有一个偏移。这使得在构建地图时会让人感到困惑。作为额外的注释,位图被绘制在比自身大的面板上。 (例如bitmap.dimensions == 64x64和panel.dimensions == 512x512)。

    private void redrawCityPanel()
    {
        Image cityImage = this.cityBitmap;

        Graphics panel_CityGraphics = this.panel_City.CreateGraphics();
        panel_CityGraphics.Clear(this.panel_City.BackColor);
        panel_CityGraphics.InterpolationMode = InterpolationMode.NearestNeighbor;
        panel_CityGraphics.DrawImage(cityImage, panel_City.DisplayRectangle);
    }

对此感到抱歉。我会张贴图片,但我没有获得足够的积分。

1 个答案:

答案 0 :(得分:3)

我需要做的就是设置像素偏移模式。

private void redrawCityPanel()
{
    Image cityImage = this.cityBitmap;

    Graphics panel_CityGraphics = this.panel_City.CreateGraphics();
    panel_CityGraphics.Clear(this.panel_City.BackColor);
    panel_CityGraphics.InterpolationMode = InterpolationMode.NearestNeighbor;

    panel_CityGraphics.PixelOffsetMode = PixelOffsetMode.Half; //Added

    panel_CityGraphics.DrawImage(cityImage, panel_City.DisplayRectangle);
}