1

我在 Google 上搜索了很长时间,似乎找不到解决问题的方法。

问题在于将位图绘制到面板上。由于某种奇怪的原因,整个位图似乎向面板的左上角偏移。这在构建地图时会让人感到困惑。作为一个额外的说明,位图被绘制在一个比它本身更大的面板上。(例如 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);
    }

很抱歉造成混乱。我会发布图片,但我没有获得足够的积分。

4

1 回答 1

4

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

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);
}
于 2012-04-19T21:45:15.483 回答