本文介绍在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. 汇编 | DosBox初步接触的一些初始化设置(窗口大小 & 默认命令)

    如何在win10 64位下搭载汇编环境请参考这篇博客:Here 学习汇编时下载了 DosBox,然而窗口小到眼睛酸痛.解决方案如下. Updata:VSC 插件使用方法,Here 1.点开配置文件 配 ...

  2. 你想怎么使用 Serverless 函数计算?(评测赢好礼 )

    随着云计算发展,云原生热度攀升,Serverless 架构崭露头角且发展势头迅猛.不仅被更多开发者所关注,市场占有率也逐年提高.阿里云函数计算(Function Compute)是一个事件驱动的全托管 ...

  3. 2022 开源之夏 | Serverless Devs 陪你“变得更强”

    Serverless 是近年来云计算领域热门话题,凭借极致弹性.按量付费.降本提效等众多优势受到很多人的追捧,各云厂商也在不断地布局 Serverless 领域.但是随着时间的发展,Serverles ...

  4. 二、mysql安装(主从)

    上一篇: 一.mysql5.7 rpm 安装(单机)  https://www.cnblogs.com/yclh/p/14951314.html 环境      192.168.0.1 主节点     ...

  5. distributor和gateway联合实现出中继的负载均衡+故障转移

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 在之前的文章,我们介绍过distributor模块实现多线路分发的配置方法,但是当线路发生故障时,distributor并不会自动跳 ...

  6. SIP没有摘机消息可以通话吗

    概述 SIP流程中,A路没有收到摘机的200 OK响应消息可以通话吗? 客户反馈的问题千奇百怪,公共互联网的问题同样百转千回,让你欲罢不能,头秃方休. 客户报故障,问题描述是这样的,我用号码A打给号码 ...

  7. 项目启动一直 DruidDataSource inited,启动很慢

    解决方案: 由于在调试过程中,代码中设置了断点,在启动的时候,服务就一直卡住了,当关闭断点,重新启动就ok了.

  8. Verilog仿真实践

    Verilog必须掌握 逻辑仿真工具(VCS)和逻辑综合工具(DC) AndOR module AndOr( output X,Y, input A,B,C ); // A B进行按位与运算 assi ...

  9. SD-Host控制器设计架构

    SD Host功能列表 SD Host挂接在SoC中,与外部的SD card进行交互 有控制寄存器和状态寄存器,SoC往往有CPU,通过CPU进行配置寄存器,有些SoC没有CPU,需要使用I2C或者S ...

  10. 【一文秒懂】Ftrace系统调试工具使用终极指南

    [一文秒懂]Ftrace系统调试工具使用终极指南 1.Ftrace是什么 Ftrace是Function Trace的简写,由 Steven Rostedt 开发的,从 2008 年发布的内核 2.6 ...