本文介绍在Vistual Studio 2022中使用Avalonia和集成AnyCAD AvaloniaUI三维控件的的过程。

0 初始化环境

安装Avalonia.Templates

dotnet new install Avalonia.Templates

若之前安装过可忽略此步骤。

1 创建项目

选择创建AvaloniaUI项目

选一下.NET6版本和Avalonia版本

2 集成AnyCAD AvaloniaUI

从nuget.org上安装AnyCAD AvaloniaUI。

3 设计界面

在MainWindow.axaml里面集成AnyCAD Rapid控件:

  • 首先引入程序集:
 xmlns:anycad="clr-namespace:AnyCAD.AvaloniaUI;assembly=AnyCAD.AvaloniaUI"
  • 设计布局

直接加个Button和三维控件。完整的xaml如下:

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:anycad="clr-namespace:AnyCAD.AvaloniaUI;assembly=AnyCAD.AvaloniaUI"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="AnyCAD.AvaloniaApp.MainWindow"
Title="AnyCAD.AvaloniaApp">
<StackPanel>
<Button Content="打开" Width="160"/>
<anycad:RenderControl x:Name="mRenderView" Width="800" Height="600"></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.ViewContext.GetScene();
scene.AddNode(node); mRenderView.ViewContext.RequestUpdate(EnumUpdateFlags.Scene);
}
}
}

再运行一下,打开个模型

6 总结

AvaloniaUI一款优秀的跨平台.NET UI库,结合AnyCAD Rapid SDK for AvaloniaUI,就可以快速开发跨平台的三维应用。

AnyCAD Rapid SDK的更多功能请参考anycad.rapid.net.sample

本文完整代码:https://gitee.com/anycad/anycad.rapid.net.sample/tree/master/AnyCAD.AvaloniaApp

基于AvaloniaUI开发跨平台.NET三维应用:环境搭建的更多相关文章

  1. arcgis api for flex 开发入门(一)环境搭建

    http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...

  2. Android开发使用控件入门--环境搭建

    Android开发使用控件入门--环境搭建 软件名称(,梦,,想.CAD  ,控件) 1. 环境搭建: 3 1.1. 安装Eclipse 3 1.2. 下载JDK 3 1.3. 下载Android S ...

  3. 【ARM-Linux开发】在win下开发的eclipse+yougatoo+jlink环境搭建

    在win下开发的eclipse+yougatoo+jlink环境搭建 一 工具的安装 第一步:安装gcc编译工具 yagarto-bu-2.21_gcc-4.6.2-c-C++_nl-1.19.0_g ...

  4. 跨平台开发之阿里Weex框架环境搭建(一)

    转载自:http://www.cnblogs.com/fozero/p/5995122.html 一.介绍 Weex是阿里今年6月份推出的跨平台解决方案,6月底正式开源.官网 https://alib ...

  5. windows phone 8 开发系列(一)环境搭建

    一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃wp7的行为比较不爽),现在wp8已经出来一段时间了,市场上也 ...

  6. 基于Prometheus和Grafana的监控平台 - 环境搭建

    相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据. ...

  7. 驱动开发 - WDK 调试及 SVN 环境搭建

    由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...

  8. 基于docker的 Hyperledger Fabric 多机环境搭建(上)

    环境:ubuntu 16.04 Docker  17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...

  9. cocos2d-x游戏开发(一)之环境搭建篇

    前言 进入研究生生涯已经有一段时间,感觉却没做些什么,实验室虽有一个很大的国家项目,但考虑到它这么的单一,总想利用业余时间做些什么,拓宽一下自己的知识面. 偶然机会,了解到cocos这个东东,恰好,实 ...

  10. 基于 Android NDK 的学习之旅-----环境搭建

    工欲善其事 必先利其器 , 下面介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建. 1.Android 开发环境搭建 Android开发环境搭建不是重点,相信看此文章的 ...

随机推荐

  1. Serverless 时代开启,云计算进入业务创新主战场

    作者 | 于洪涛 "我们希望让用户做得更少而收获更多,通过 Serverless 化,让企业使用云服务像用电一样简单." Serverless 化正在成为全新的软件研发范式,阿里云 ...

  2. 解决刷新页面丢失vuex数据

  3. Java中的日期计算

    Java中的日期计算:详细指南 日期计算是Java编程中的一个常见任务,无论是在日常应用开发还是在企业级系统中.本文详细介绍了如何在Java中进行日期计算,包括添加天数.计算两个日期之间的差异以及格式 ...

  4. Vue之将前端的筛选结果导出为csv文件

    有导入就有导出哈!这里继导入之后记录一下导出的实现过程. 1.按钮部分: <el-button class="filter-item" style="margin- ...

  5. SD协议-基本概念

    1.SD协议版本 SD 1.1 SD 2.0 SD 3.0 在看协议的时候,需要注意协议的版本,注意版本之间的差别 SD协议是常见的数据通信和存储卡之间的协议 HDMI是显示相关的协议,遵循HDMI协 ...

  6. 【C++】类成员冒号初始化以及构造函数内赋值

    From:https://blog.csdn.net/zj510/article/details/8135556 通常我们对类成员进行"初始化"有两种方式: 1. 构造函数后面跟冒 ...

  7. [转帖]JVM参数配置及调优

    https://cloud.tencent.com/developer/article/2235751 JVM参数分类 jvm 参数可分为三类: 标准参数:以 "-" 开头的参数 ...

  8. Oracle Rac 的简单学习

    Oracle Rac 的简单学习 Oracle RAC的概念 Oracle RAC (Real Application Clusters) 是 Oracle 数据库管理系统的一个功能, 它允许将数据库 ...

  9. [转帖]SSH交互式脚本StrictHostKeyChecking选项 benchmode=yes

    https://www.cnblogs.com/klb561/p/11013774.html SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥 ...

  10. [转帖]编译安装goofys挂载Scaleway免费75G对象存储

    日常•2022年5月29日   goofys编译 goofys是一个开源的使用Go编写的s3存储桶挂载工具,主打高性能.由于使用Go编写,没有用到什么特别的依赖,自己编译也很容易.截止2022.5.2 ...