3D视口大小

时间:2011-09-14 10:00:39

标签: c# wpf 3d size viewport

我想制作一个我的视口图像,但我知道的唯一方法是以下

Image myImage = new Image();
RenderTargetBitmap bmp;
bmp = new RenderTargetBitmap((int)this.Width, (int)this.Height, 96, 96, PixelFormats.Pbgra32);
bmp.Render(myViewPort);

myImage.Source = bmp;
myImage.Stretch = Stretch.Uniform;

我正在使用windows的实际大小和高度来确保bmp变得“足够大”,即使视口占据了窗口的一小部分

视口在这样的网格中抵制

<Grid Grid.Column="1" Name="ViewPortGrid" Background="SteelBlue" >
    <Viewport3D Name="myViewPort" >
    </Viewport3D>
</Grid>

创建bmp时,我无法使用ViewPortGrid.Widht / Height或myViewPort.Widht / Height,因为这些是NaN。

是否有更好的方法来创建视口图像?

有没有办法获得视口的真实大小,因此RenderTargetBitmap的创建等于视口的大小(使用窗口大小会使图像比需要的大得多)?

/斯蒂芬

1 个答案:

答案 0 :(得分:0)

尝试使用.ActualWidth和.ActualHeight属性。

这与在WPF中呈现和处理事物的方式有关,这与WinForms完全不同。

请参阅:

http://learnwpf.com/post/2007/03/14/Why-is-the-WidthHeight-Property-for-many-Elements-e28098NaNe28099-in-WPF.aspx