DevToolsExtensions.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using Avalonia.Controls;
  2. using Avalonia.Diagnostics;
  3. using Avalonia.Input;
  4. namespace Avalonia
  5. {
  6. /// <summary>
  7. /// Extension methods for attaching DevTools..
  8. /// </summary>
  9. public static class DevToolsExtensions
  10. {
  11. /// <summary>
  12. /// Attaches DevTools to a window, to be opened with the F12 key.
  13. /// </summary>
  14. /// <param name="root">The window to attach DevTools to.</param>
  15. public static void AttachDevTools(this TopLevel root)
  16. {
  17. DevTools.Attach(root, new DevToolsOptions());
  18. }
  19. /// <summary>
  20. /// Attaches DevTools to a window, to be opened with the specified key gesture.
  21. /// </summary>
  22. /// <param name="root">The window to attach DevTools to.</param>
  23. /// <param name="gesture">The key gesture to open DevTools.</param>
  24. public static void AttachDevTools(this TopLevel root, KeyGesture gesture)
  25. {
  26. DevTools.Attach(root, gesture);
  27. }
  28. /// <summary>
  29. /// Attaches DevTools to a window, to be opened with the specified options.
  30. /// </summary>
  31. /// <param name="root">The window to attach DevTools to.</param>
  32. /// <param name="options">Additional settings of DevTools.</param>
  33. public static void AttachDevTools(this TopLevel root, DevToolsOptions options)
  34. {
  35. DevTools.Attach(root, options);
  36. }
  37. /// <summary>
  38. /// Attaches DevTools to a Application, to be opened with the specified options.
  39. /// </summary>
  40. /// <param name="application">The Application to attach DevTools to.</param>
  41. public static void AttachDevTools(this Application application)
  42. {
  43. DevTools.Attach(application, new DevToolsOptions());
  44. }
  45. /// <summary>
  46. /// Attaches DevTools to a Application, to be opened with the specified options.
  47. /// </summary>
  48. /// <param name="application">The Application to attach DevTools to.</param>
  49. /// <param name="options">Additional settings of DevTools.</param>
  50. /// <remarks>
  51. /// Attach DevTools should only be called after application initialization is complete. A good point is <see cref="Application.OnFrameworkInitializationCompleted"/>
  52. /// </remarks>
  53. /// <example>
  54. /// <code>
  55. /// public class App : Application
  56. /// {
  57. /// public override void OnFrameworkInitializationCompleted()
  58. /// {
  59. /// if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime)
  60. /// {
  61. /// desktopLifetime.MainWindow = new MainWindow();
  62. /// }
  63. /// else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime)
  64. /// singleViewLifetime.MainView = new MainView();
  65. ///
  66. /// base.OnFrameworkInitializationCompleted();
  67. /// this.AttachDevTools(new Avalonia.Diagnostics.DevToolsOptions()
  68. /// {
  69. /// StartupScreenIndex = 1,
  70. /// });
  71. /// }
  72. /// }
  73. /// </code>
  74. /// </example>
  75. public static void AttachDevTools(this Application application, DevToolsOptions options)
  76. {
  77. DevTools.Attach(application, options);
  78. }
  79. }
  80. }