分享:VTK版本的选择 - WPF空域问题

在早期版本中,ActiViz 对 Windows Presentation Foundation (WPF) 框架的支持是通过 WindowsFormHost 组件实现的,这种方式依赖于 WindowsForm 和 WPF 的互操作性。然而,这种方法存在一个众所周知的"空域问题"(airspace issue),即 WindowsForm 的内容总是覆盖在 WPF 组件之上,影响了界面的渲染效果。

在最新版本后 ,ActiViz 提供了通过原生 D3DImage 控件实现的无缝 VTK 渲染管道集成。消除了"空域问题",说是这样说,我试了试vtk9.2版本的,可惜...尝试是失败的

cs 复制代码
public partial class MainWindow : Window
{
    private vtkRenderWindow renderWindow;
    private D3DImage d3dImage;

    public MainWindow()
    {
        InitializeComponent();
       
    }

    private void InitializeVTK()
    {
        // 创建 VTK 渲染窗口
        renderWindow = vtkRenderWindow.New();
        vtkRenderer renderer = vtkRenderer.New();
        renderWindow.AddRenderer(renderer);

        // 创建一个简单的示例对象
        vtkSphereSource sphereSource = vtkSphereSource.New();
        vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
        mapper.SetInputConnection(sphereSource.GetOutputPort());
        vtkActor actor = vtkActor.New();
        actor.SetMapper(mapper);
        renderer.AddActor(actor);

        // 设置背景颜色
        renderer.SetBackground(0.1, 0.2, 0.4);

        // 使用 D3DImage 进行渲染
        d3dImage = new D3DImage();
        IntPtr hwnd = renderWindow.GetGenericWindowId();
        d3dImage.Lock();
        d3dImage.SetBackBuffer(D3DResourceType.IDirect3DSurface9, hwnd);
        d3dImage.Unlock();

        // 将 D3DImage 绑定到 WPF 的 Image 控件
        vtkImage.Source = d3dImage;
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        InitializeVTK();
    }
}

但是,也有解决:,我之前就有过尝试,是要重写控件一系列消息事件,然后跟随主窗口进行标记

相关推荐
Scout-leaf4 天前
WPF新手村教程(三)—— 路由事件
c#·wpf
柒.梧.6 天前
基于SpringBoot+JWT 实现Token登录认证与登录人信息查询
wpf
十月南城9 天前
Flink实时计算心智模型——流、窗口、水位线、状态与Checkpoint的协作
大数据·flink·wpf
听麟12 天前
HarmonyOS 6.0+ 跨端会议助手APP开发实战:多设备接续与智能纪要全流程落地
分布式·深度学习·华为·区块链·wpf·harmonyos
@hdd12 天前
Kubernetes 可观测性:Prometheus 监控、日志采集与告警
云原生·kubernetes·wpf·prometheus
zls36536512 天前
C# WPF canvas中绘制缺陷分布map
开发语言·c#·wpf
专注VB编程开发20年12 天前
c#Redis扣款锁的设计,多用户,多台电脑操作
wpf
闲人编程13 天前
定时任务与周期性调度
分布式·python·wpf·调度·cron·定时人物·周期性
zls36536513 天前
C# WPF canvas中绘制缺陷分布map并实现缩放
开发语言·c#·wpf
数据知道14 天前
PostgreSQL:Citus 分布式拓展,水平分片,支持海量数据与高并发
分布式·postgresql·wpf