Hi.Sample.Wpf/Disp/DemoUtil.cs
2026-04-08 16:33:18 +08:00

43 lines
1.4 KiB
C#

using Hi.Disp;
using Hi.HiNcKits;
using Hi.Licenses;
using Hi.WpfPlus.Disp;
using System.Windows;
namespace Sample.Disp;
/// <summary>
/// Provides utility functions for running HiAPI display examples in a WPF environment.
/// Contains helper methods that simplify the setup and execution of WPF applications with HiAPI rendering.
/// Handles common initialization and cleanup tasks for visualization examples.
/// </summary>
/// <remarks>
/// ### Source Code
/// [!code-csharp[SampleCode](~/../Hi.Sample.Wpf/Disp/DemoUtil.cs)]
/// </remarks>
public static class DemoUtil
{
/// <summary>
/// Creates and runs a WPF application with a RenderingWindow to display 3D content.
/// Handles proper initialization and cleanup of HiAPI resources including MongoDB server,
/// display engine, and licensing.
/// </summary>
/// <param name="title">The title for the application window</param>
/// <param name="displayee">The object that implements IDisplayee to be rendered</param>
public static void RunApplication(string title, IDisplayee displayee)
{
using var loggerFactory = Microsoft.Extensions.Logging.LoggerFactory.Create(b => b.AddConsole());
LocalApp.AppBegin(loggerFactory.CreateLogger("Hi.Sample.Wpf"));
Application app = new Application();
app.Exit += (o, e) =>
{
LocalApp.AppEnd();
};
app.Run(new RenderingWindow()
{
Title = title,
Displayee = displayee
});
}
}