private void DrawComputerTiledModeView(IListItemEx sho, Graphics g, RectangleF lblrectTiles, StringFormat fmt) { var driveInfo = new DriveInfo(sho.ParsingName); if (driveInfo.IsReady) { ProgressBarRenderer.DrawHorizontalBar(g, new Rectangle((Int32)lblrectTiles.Left, (Int32)lblrectTiles.Bottom + 4, (Int32)lblrectTiles.Width - 10, 10)); var fullProcent = (100 * (driveInfo.TotalSize - driveInfo.AvailableFreeSpace)) / driveInfo.TotalSize; var barWidth = (lblrectTiles.Width - 12) * fullProcent / 100; var rec = new Rectangle((Int32)lblrectTiles.Left + 1, (Int32)lblrectTiles.Bottom + 5, (Int32)barWidth, 8); var gradRec = new Rectangle(rec.Left, rec.Top - 1, rec.Width, rec.Height + 2); var criticalUsed = fullProcent >= 90; var warningUsed = fullProcent >= 75; var averageUsed = fullProcent >= 50; var brush = new LinearGradientBrush(gradRec, criticalUsed ? Color.FromArgb(255, 0, 0) : warningUsed ? Color.FromArgb(255, 224, 0) : averageUsed ? Color.FromArgb(0, 220, 255) : Color.FromArgb(199, 248, 165), criticalUsed ? Color.FromArgb(150, 0, 0) : warningUsed ? Color.FromArgb(255, 188, 0) : averageUsed ? Color.FromArgb(43, 84, 235) : Color.FromArgb(101, 247, 0), LinearGradientMode.Vertical); g.FillRectangle(brush, rec); brush.Dispose(); var lblrectSubiTem3 = new RectangleF(lblrectTiles.Left, lblrectTiles.Bottom + 16, lblrectTiles.Width, 15); Font subItemFont = SystemFonts.IconTitleFont; var subItemTextBrush = new SolidBrush(SystemColors.ControlDarkDark); g.DrawString($"{ShlWapi.StrFormatByteSize(driveInfo.AvailableFreeSpace)} free of {ShlWapi.StrFormatByteSize(driveInfo.TotalSize)}", subItemFont, subItemTextBrush, lblrectSubiTem3, fmt); subItemFont.Dispose(); subItemTextBrush.Dispose(); } }