3
我在製作an overloaded TableLayoutPanel
which draws some fancy borders,但由於某種原因致電Graphics::DrawImage
未按預期工作。這似乎淡出了我的1×10像素的源圖像時,我伸出它:爲什麼Graphics :: DrawImage不像預期那樣拉伸圖像?
這是做渲染功能:
void GTableLayoutPanel::RenderSides(Graphics^ g, array<Drawing::Image^>^ sideImages)
{
if(sideImages)
{
if(sideImages->Length < 4)
{
throw gcnew System::ArgumentException(String::Format("Not enough images supplied to render sides (expected 4 but only got {0})", sideImages->Length));
}
int borderSize = sideImages[0]->Height;
g->DrawImage(sideImages[0], Rectangle(borderSize, 0, this->Width-borderSize*2, borderSize));
g->DrawImage(sideImages[1], Rectangle(this->Width-borderSize, borderSize, borderSize, this->Height-borderSize*2));
g->DrawImage(sideImages[2], Rectangle(borderSize, this->Height-borderSize, this->Width-borderSize*2, borderSize));
g->DrawImage(sideImages[3], Rectangle(0, borderSize, borderSize, this->Height-borderSize*2));
}
}
足夠接近;我發現使用'PixelOffsetMode :: Half'並添加了幾個像素來隱藏發生的毛刺,同時水平地對它進行定標。我開始認爲你在跟蹤我的問題漢斯;-) – 2010-07-17 19:55:12
@Jon,是的,沒有開玩笑。你知道你正在做一些不尋常的事情嗎? Windows窗體編碼在C++/CLI中很少完成。 – 2010-07-17 20:25:59
我在相當經常的基礎上提醒了這個事實;-)但是我的團隊中的其他開發人員喜歡C++而不是C#,所以我們傾向於最終編寫GUI。 – 2010-07-18 11:13:30