ZIndexExamples.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using QuestPDF.Fluent;
  2. using QuestPDF.Helpers;
  3. using QuestPDF.Infrastructure;
  4. namespace QuestPDF.DocumentationExamples;
  5. public class ZIndexExamples
  6. {
  7. [Test]
  8. public void Example()
  9. {
  10. Document
  11. .Create(document =>
  12. {
  13. document.Page(page =>
  14. {
  15. page.MinSize(new PageSize(650, 0));
  16. page.MaxSize(new PageSize(650, 1000));
  17. page.DefaultTextStyle(x => x.FontSize(20));
  18. page.Margin(25);
  19. page.Content()
  20. .PaddingVertical(15)
  21. .Border(2)
  22. .Row(row =>
  23. {
  24. row.RelativeItem()
  25. .Background(Colors.Grey.Lighten3)
  26. .Element(c => AddPricingItem(c, "Community", "Free"));
  27. row.RelativeItem()
  28. .ZIndex(1) // -1 or 0 or 1
  29. .Padding(-15)
  30. .Border(1)
  31. .Background(Colors.Grey.Lighten1)
  32. .PaddingTop(15)
  33. .Element(c => AddPricingItem(c, "Professional", "$699"));
  34. row.RelativeItem()
  35. .Background(Colors.Grey.Lighten3)
  36. .Element(c => AddPricingItem(c, "Enterprise", "$1999"));
  37. void AddPricingItem(IContainer container, string name, string formattedPrice)
  38. {
  39. container
  40. .Padding(25)
  41. .Column(column =>
  42. {
  43. column.Item().AlignCenter().Text(name).FontSize(24).Black();
  44. column.Item().AlignCenter().Text(formattedPrice).FontSize(20).SemiBold();
  45. column.Item().PaddingHorizontal(-25).PaddingVertical(10).LineHorizontal(1);
  46. foreach (var i in Enumerable.Range(1, 4))
  47. {
  48. column.Item()
  49. .PaddingTop(10)
  50. .AlignCenter()
  51. .Text(Placeholders.Label())
  52. .FontSize(16)
  53. .Light();
  54. }
  55. });
  56. }
  57. });
  58. });
  59. })
  60. .GenerateImages(x => "zindex-positive.webp", new ImageGenerationSettings() { ImageFormat = ImageFormat.Webp, ImageCompressionQuality = ImageCompressionQuality.VeryHigh, RasterDpi = 144 });
  61. }
  62. }