【问题标题】:Click Event through transparent surface using Helixtoolkit.SortingVisual3D使用 Helixtoolkit.SortingVisual3D 通过透明表面单击事件
【发布时间】:2021-07-16 13:47:43
【问题描述】:

我希望我的可点击蓝色立方体在通过透明表面 MeshGeometryVisual3D 元素点击它时改变颜色。当立方体容器是 ViewPort 类的子容器时,一切正常,但通过表面不可见(无排序),但当它是 Helixtoolkit.SortingVisual3D 的子容器时,单击事件停止工作,但通过表面可见! 这是我使用的 SortingVisual3D 元素的代码:

<helix:SortingVisual3D x:Name="sortingVisual1" Method="BoundingSphereSurface" SortingFrequency="5" >  
   <helix:MeshGeometryVisual3D x:Name="_visual"  MeshGeometry="{Binding objectGeometry}"   Visible="{Binding IsChecked, ElementName=MeshVisible}" >
   </helix:MeshGeometryVisual3D>
</helix:SortingVisual3D>

立方体添加到 SortingVisual3D 元素的代码是这样的:

 AddCubePoint cpsorting = new AddCubePoint(middle, defaultMaterial);
            sortingVisual1.Children.Add(cpsorting);

我曾尝试在同一位置使用两个相同的立方体(一个 ViewPort 的孩子,SortingVisual3D 的第二个),但点击表面后颜色会发生变化,仅在 ViewPort 的孩子上(见图)!

我是 helix-3d-toolkit 的新手,经过 2 天的研究,我找不到任何可行的解决方案或想法如何解决这个问题!请帮帮我!

【问题讨论】:

    标签: wpf events transparency helix-3d-toolkit helix


    【解决方案1】:

    您需要将立方体放在半透明网格之前,因此首先渲染立方体。将您的透明网格命中测试设置为 false

    【讨论】:

    • 谢谢你,它,工作!我不得不重写部分代码并动态添加网格几何体和立方体!始终将 False hit test visible object last (或透明/玻璃状可点击对象)添加到 SortingVisual3D 中!
    • 我认为这个问题与通过透明表面的点击事件有关,所以也很高兴考虑这个与透明度有关的问题...stackoverflow.com/questions/68690544/…
    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多