using Hi.Disp; using Hi.Licenses; using System; using System.Windows; using System.Windows.Media; namespace Hi.Wpf.Disp { /// /// Window for 3D rendering. /// public class RenderingWindow : Window, IGetDispEngine { public RenderingCanvas RenderingCanvas => Content as RenderingCanvas; /// /// Ctor. /// public RenderingWindow() { Title = nameof(RenderingWindow); Height = 450; Width = 800; StateChanged += RenderingWind_StateChanged; Content = new RenderingCanvas() { BorderThickness = new Thickness(1), BorderBrush = Brushes.Black }; } private void RenderingWind_StateChanged(object sender, EventArgs e) { RenderingCanvas.DispEngine.IsVisible = WindowState != WindowState.Minimized; } /// public DispEngine GetDispEngine() => RenderingCanvas.DispEngine; /// /// Run a simple application with given . /// /// Title /// displayees /// return value of . public static int RunApplication(string title, params IDisplayee[] displayees) { License.LogInAll(); DispEngine.Init(); Application app = new Application { ShutdownMode = ShutdownMode.OnMainWindowClose }; app.Exit += (o, e) => { DispEngine.FinishDisp(); License.LogOutAll(); }; RenderingWindow window = new RenderingWindow() { Title = title }; window.RenderingCanvas.DispEngine.Displayee = new DispList(displayees); window.RenderingCanvas.DispEngine.SetViewToHomeView(); return app.Run(window); } } }