Мне было интересно, можно ли заполнить определенный процент объекта Rectangle, который был нарисован на экране, так что он ведет себя как индикатор прогресса, где вы можете смотреть его «уровень» вверх и вниз , В частности, я хотел бы заполнить его сверху донизу, а не слева направо.Частично заполнить объект Rectangle
0
A
ответ
1
Вы можете попробовать это.
private void button1_Click(object sender, EventArgs e)
{
panel1.Width = 400;
panel1.Height = 50;
using (Graphics g = this.panel1.CreateGraphics())
{
g.Clear(Color.Black);
Pen pen = new Pen(Color.Red, 2);
for (int i = 0; i <= 50;i++)
{
g.DrawRectangle(pen, 0, 0, 400, i);
Thread.Sleep(100);
}
pen.Dispose();
}
}
+0
Глядя на это, кажется, что этот код нарисовал бы прямоугольник, фактическая высота которого будет масштабироваться, а не только цвет внутри его граничных границ? –
+0
@AlexWatts: Вы попробовали? – jp2code
Возможно, вы могли бы разместить меньший прямоугольник внутри большего и полностью заполнить внутреннюю. Затем сделайте внутреннюю большую поэтапно. –
Это то, что я думал о резервном копировании, не имея возможности манипулировать заполнением, чтобы работать только с частью Rectangle, я просто подумал, что я также посмотрю, что может предложить кто-то с большим опытом в этом, чем я. Рад узнать, что это не идея! –
Обратите внимание, что DrawRectangle выключен одним справа внизу! Помимо этого, используя растущий 2-й прямоугольник (или, проще: перегрузка с четырьмя целыми числами и растущей высотой и сокращение y), это способ пойти. Вы также можете изучить LinearGradientBrush для цветовых эффектов! – TaW