Размер 3D области просмотра - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу сделать изображение моего окна просмотра, но я знаю только следующее:

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;

Я использую фактический размер и высоту окон, чтобы быть уверенным, что bmp становится "достаточно большим"даже если область просмотра занимает меньшую часть окна

Область просмотра сопротивляется в сетке, подобной этой

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

Я не могу использовать ViewPortGrid.Widht / Height или myViewPort.Widht / Heightпри создании bmp это NaN.

Есть ли лучшие способы создания изображения в окне просмотра?

Есть ли способ получить истинный размер области просмотра, чтобы созданиеRenderTargetBitmap равен размеру области просмотра (использование размера окна делает изображение намного больше, чем нужно)?

/ Stefan

1 Ответ

0 голосов
/ 14 сентября 2011

Попробуйте использовать свойства .ActualWidth и .ActualHeight.

Это связано со способом рендеринга и обработки вещей в WPF, который полностью отличается от WinForms.

См:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...