网站推广方案中确定目标是指,网站建设的未来,个人介绍的网页模板,空间站 对接本文介绍在Vistual Studio 2022中使用Avalonia和集成AnyCAD Rapid AvaloniaUI三维控件的过程。
0 初始化环境
安装Avalonia.Templates
dotnet new install Avalonia.Templates若之前安装过可忽略此步骤。
1 创建项目
选择创建AvaloniaUI项目
选一下.NET6版本和Avalonia版…本文介绍在Vistual Studio 2022中使用Avalonia和集成AnyCAD Rapid AvaloniaUI三维控件的过程。
0 初始化环境
安装Avalonia.Templates
dotnet new install Avalonia.Templates若之前安装过可忽略此步骤。
1 创建项目
选择创建AvaloniaUI项目
选一下.NET6版本和Avalonia版本
2 配置项目
2.1 安装AnyCAD AvaloniaUI组件
从nuget.org上安装AnyCAD AvaloniaUI。 2.2 增加HDPI支持
修改app.manifest在尾部增加 asmv3:application 相关配置
?xml version1.0 encodingutf-8?
assembly manifestVersion1.0 xmlnsurn:schemas-microsoft-com:asm.v1!-- 新增加的内容支持HDPI --asmv3:application xmlns:asmv3urn:schemas-microsoft-com:asm.v3asmv3:windowsSettingsdpiAware xmlnshttp://schemas.microsoft.com/SMI/2005/WindowsSettingstrue/PM/dpiAwaredpiAwareness xmlnshttp://schemas.microsoft.com/SMI/2016/WindowsSettingspermonitorv2,permonitor/dpiAwareness/asmv3:windowsSettings/asmv3:application
/assembly
3 设计界面
在MainWindow.axaml里面集成AnyCAD Rapid控件
首先引入程序集: AnyCAD.Avalonia.NET6
xmlns:anycadclr-namespace:AnyCAD.AvaloniaUI;assemblyAnyCAD.Avalonia.NET6设计布局
直接加个Button和三维控件。完整的xaml如下
Window xmlnshttps://github.com/avaloniauixmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:anycadclr-namespace:AnyCAD.AvaloniaUI;assemblyAnyCAD.Avalonia.NET6mc:Ignorabled d:DesignWidth800 d:DesignHeight450x:ClassAnyCAD.AvaloniaApp.MainWindowTitleAnyCAD.AvaloniaAppStackPanelButton Content打开 Width160/anycad:RenderControl x:NamemRenderView Width800 Height600/anycad:RenderControl/StackPanel
/Window
4 初始化控件
在Program.cs修改初始化代码 Main函数做修改 [STAThread]public static void Main(string[] args){// 初始化AnyCAD.Foundation.GlobalInstance.Initialize();BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);// 释放资源AnyCAD.Foundation.GlobalInstance.Destroy();}运行一下
5 显示模型
MainWindow函数中响应一下Buttond的Click事件 public partial class MainWindow : Window{public MainWindow(){InitializeComponent(); }public void OnOpen(object sender, RoutedEventArgs e){var dlg new OpenFileDialog();dlg.Filters.Add(new FileDialogFilter() { Name Model Files, Extensions { step, stp, iges, igs } });var result dlg.ShowAsync(this);if (result null)return;string fileName result.Result[0];var shape ShapeIO.Open(fileName);if(shape ! null){var node BrepSceneNode.Create(shape, null, null);var scene mRenderView.Scene;scene.AddNode(node);mRenderView.ViewContext.RequestUpdate(EnumUpdateFlags.Scene);}}}再运行一下打开个模型
6 总结
AvaloniaUI一款优秀的跨平台.NET UI库结合AnyCAD Rapid .NET for AvaloniaUI就可以快速开发跨平台的三维应用。
本文完整代码anycad.rapid.net.sample