0
패널 p2는 패널 1의 너비가 0이 될 때까지 표시되지 않습니다. 그러나 messageBox 코드의 주석을 제거하면 p2가 표시되어 messageBox가 나타납니다. 이것은 C#이 UI 페인트를 강제하는 다른 이벤트 (예 : messageBox)가 될 때까지 p2에서 repaint을 네이티브 지연한다고 생각하게합니다.슬라이딩 패널의 가시성이 작동하지 않음/지연 페인트 문제?
어떻게이 문제를 해결할 수 있습니까?
private void SlidePanel(UIPanel p, UIPanel p2) //, Direction d)
{
int prevWidth = p.Width;
PanelDockStyle prevDock = p.DockStyle;
p.DockStyle = PanelDockStyle.Left;
p2.Show();
while (p.Width > 0)
{
p.Width -= (p.Width > 4 ? 4 : p.Width);
Thread.Sleep(1);
//if (p.Width < 400)
//{
// MessageBox.Show("Ha");
// break;
//}
}
p.Hide();
p.DockStyle = prevDock;
p.Width = prevWidth;
}
오후 2시에 UI 디스패처 루프를 이해하지 못하면 어떻게됩니까? –