Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式设置附加属性,例如Viewport2DVisual3D.IsVisualHostMaterialProperty_C#_Wpf_Dependency Properties_Attached Properties - Fatal编程技术网

C# 如何以编程方式设置附加属性,例如Viewport2DVisual3D.IsVisualHostMaterialProperty

C# 如何以编程方式设置附加属性,例如Viewport2DVisual3D.IsVisualHostMaterialProperty,c#,wpf,dependency-properties,attached-properties,C#,Wpf,Dependency Properties,Attached Properties,我想知道如何以编程方式设置WPF Dependecy属性Viewport2DVisual3D.IsVisualHostMaterialProperty 在xaml中,我将使用: <Viewport2DVisual3D> <Viewport2DVisual3D.Geometry> <MeshGeometry3D Positions = "0,0,0 0,-30.9274,0 0,-30.9274,-24.4287 0,0,-24.4287"

我想知道如何以编程方式设置WPF Dependecy属性Viewport2DVisual3D.IsVisualHostMaterialProperty

在xaml中,我将使用:

<Viewport2DVisual3D>
    <Viewport2DVisual3D.Geometry>
        <MeshGeometry3D Positions = "0,0,0 0,-30.9274,0 0,-30.9274,-24.4287 0,0,-24.4287"
                        TextureCoordinates = "0,0 0,1 1,1 1,0"
                        TriangleIndices = "0 1 2 0 2 3"/>
    </Viewport2DVisual3D.Geometry>
    <Viewport2DVisual3D.Material>
        <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True"/>
    </Viewport2DVisual3D.Material>

    <Viewport2DVisual3D.Visual>
        <Grid>
            <Image Source="{StaticResource BG}"/>
        </Grid>
    </Viewport2DVisual3D.Visual>
</Viewport2DVisual3D>

但是如何在代码隐藏中完成呢?

这相当简单

只要给扩散材料起个名字就行了

<Viewport2DVisual3D>
    <Viewport2DVisual3D.Geometry>
        <MeshGeometry3D Positions="0,0,0 0,-30.9274,0 0,-30.9274,-24.4287 0,0,-24.4287"
                        TextureCoordinates="0,0 0,1 1,1 1,0"
                        TriangleIndices="0 1 2 0 2 3" />
    </Viewport2DVisual3D.Geometry>
    <Viewport2DVisual3D.Material>
        <DiffuseMaterial x:Name="diffuse" />
    </Viewport2DVisual3D.Material>

    <Viewport2DVisual3D.Visual>
        <Grid>
            <Image Source="{StaticResource BG}" />
        </Grid>
    </Viewport2DVisual3D.Visual>
</Viewport2DVisual3D>


属性
Viewport2DVisual3D.IsVisualHostMaterialProperty
是一个附加属性,可以通过上述方式设置

谢谢,我需要在运行时添加一组Viewport2DVisual3D对象,所以我“翻译”了C中的其他说明,但无法找到如何设置该particoular属性。。。
diffuse.SetValue(Viewport2DVisual3D.IsVisualHostMaterialProperty, true);
Viewport2DVisual3D.SetIsVisualHostMaterial(diffuse, true);