我想知道如何以编程方式设置
WPF依赖属性Viewport2DVisual3D.IsVisualHostMaterialProperty.
在xaml我会使用:
<Viewport2DVisual3D> <Viewport2DVisual3D.Geometry> <MeshGeometry3D Positions = "0,0 0,-30.9274,-24.4287 0,-24.4287" TextureCoordinates = "0,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>
但是如何在代码背后完成呢?
解决方法
这很简单
只需为DiffuseMaterial命名即可
<Viewport2DVisual3D> <Viewport2DVisual3D.Geometry> <MeshGeometry3D Positions="0,-24.4287" TextureCoordinates="0,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>
在代码中
像这样设置它
diffuse.SetValue(Viewport2DVisual3D.IsVisualHostMaterialProperty,true);
要么
Viewport2DVisual3D.SetIsVisualHostMaterial(diffuse,true);
属性Viewport2DVisual3D.IsVisualHostMaterialProperty是一个附加属性,可以用上面提到的方式设置
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。