如何更改WPF HelixViewport3D多维数据集的颜色并在其上写入文本

时间:2017-09-17 23:59:49

标签: wpf xaml helix-3d-toolkit

以下代码:

<Window x:Class="helixCube.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:h="http://helix-toolkit.org/wpf"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:helixPerfectCube"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">

    <Grid Width="200" Height="200" Background="Red">
        <h:HelixViewport3D Title="Titlee" ShowViewCube="False" TextBrush="Black" Opacity="0.9">
            <h:SunLight/>
            <h:BoxVisual3D Width="12" Length="12" Height="12"/>
        </h:HelixViewport3D>
    </Grid>


</Window>

给了我以下的立方体:

enter image description here

我想进行以下2项更改:

  1. 我希望立方体的颜色为黑色。但是,我找不到办法做到这一点。

  2. 我希望标题直接显示在多维数据集的(表面)上。

  3. 有人知道如何做到这一点吗?

1 个答案:

答案 0 :(得分:0)

在viewmodel中,按如下方式创建一些材料:

public Model3D Model {get; set;}
public MainViewModel()
{

  var outsideMaterial = MaterialHelper.CreateMaterial(Colors.LightGray, 0.1);
  var insideMaterial = MaterialHelper.CreateMaterial(Colors.Gray);
  var modelGroup = new Model3DGroup();

  modelGroup.Children.Add(new GeometryModel3D {Geometry = cubeObj, Material =outsideMaterial, BackMaterial = insideMaterial});
  }

创建一个立方体对象。 (cubeObj)之后的那个 在Ui,

 <h:HelixViewport3D Title="Titlee" ShowViewCube="False" TextBrush="Black" Opacity="0.9">
        <h:SunLight/>
        <ModelVisual3D Content = "{Binding Model}"/>
    </h:HelixViewport3D>

Helix ViewPort允许旋转,平移和缩放。在执行上述动作时,文本在这样的3d空间中不能整齐地呈现。因此,不建议将文本放在多维数据集的顶部。

免责声明:未经测试的代码。!