This commit is contained in:
2025-04-14 17:03:39 +08:00
parent 1065c86824
commit b68c5618ae
4 changed files with 47 additions and 25 deletions
+13 -20
View File
@@ -11,6 +11,9 @@ namespace Hi.Wpf.Disp
/// </summary>
public class RenderingWindow : Window, IGetDispEngine
{
/// <summary>
/// Gets the rendering canvas control used for displaying 3D content.
/// </summary>
public RenderingCanvas RenderingCanvas => Content as RenderingCanvas;
/// <summary>
@@ -35,29 +38,19 @@ namespace Hi.Wpf.Disp
/// <inheritdoc/>
public DispEngine GetDispEngine() => RenderingCanvas.DispEngine;
/// <summary>
/// Run a simple <see cref="RenderingWindow"/> application with given <paramref name="displayees"/>.
/// Gets or sets the current displayable 3D object.
/// When setting a new displayee, the view will be reset to home position if no previous displayee was set.
/// </summary>
/// <param name="title">Title</param>
/// <param name="displayees">displayees</param>
/// <returns>return value of <see cref="Application"/>.<see cref="Application.Run(Window)"/></returns>
public static int RunApplication(string title, params IDisplayee[] displayees)
public IDisplayee Displayee
{
License.LogInAll();
DispEngine.Init();
Application app = new Application
get => GetDispEngine().Displayee;
set
{
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);
var preDisplayee = GetDispEngine().Displayee;
GetDispEngine().Displayee = value;
if (preDisplayee == null)
RenderingCanvas.DispEngine.SetViewToHomeView();
}
}
}
}