+
Sriwantha WPF tiene algunas clases muy práctico en ella. ¿Usted ha visto RenderTargetBitmap? Básicamente, es una forma sencilla de capturar un mapa de bits de cualquier Visual WPF. Funciona con 3D también: RenderTargetBitmap bmp = new RenderTargetBitmap (anchura, altura, 96, 96, PixelFormats. Pbgra32); ¿Quieres copiar la imagen al portapapeles para que pueda pegarlo en alguna otra aplicación? ¿Quieres guardar esa imagen en un archivo PNG? PngBitmapEncoder png = new PngBitmapEncoder (); usando (Corriente del STM = File. Create (ruta de archivo)) Hábil. Las imágenes de esta serie de entradas de blog se prestaron precisamente de esta moda. Pero hay un par de detalles dignos de mención. Al utilizar RenderTargetBitmap, probablemente debería borrarlo antes de dibujar cualquier cosa en él: Rectángulo vRect = new Rectangle (); vRect. Arrange (nuevo Rect (0, 0, vRect. Width, vRect. Height)); Si su Viewport3D fue creado fuera de la pantalla, no está listo para dibujar. Es necesario darle un tamaño (el mismo que el mapa de bits estás reproduciendo en) y llamar a Medida () y Organizar () para que esté listo: myViewport3D. Measure (nuevo tamaño (anchura, altura)); myViewport3D. Arrange (nuevo Rect (0, 0, anchura, altura)); Tenga en cuenta que ninguna de las anteriores es específico de las características 3D de WPF. RenderTargetBitmap simplemente funciona con un Viewport3D como cualquier otro visual. Esta es una de las mejores cosas de WPF: Las características 3D no son especiales o extraño. Están perfectamente integrados en el marco. Si usted tiene experiencia en programación con algún otro 3D API como OpenGL o Direct3D (WPF sobre la que se construye, por cierto), es probable que esté acostumbrado a pensar en las cosas en 3D muy distinta de otras cosas. Cosas tan simples como conseguir un gráfico 3D para aparecer en la misma ventana junto a un cuadro de lista puede requerir todo tipo de gimnasia. WPF no tiene ese tipo de límites. Si usted quiere poner una escena de animación en 3D como el gráfico de un botón de la barra, se puede. Ese nivel de integración es profundamente Neato. Sólo uno más detalle sobre RenderTargetBitmap, y ésta es una especie de 3D-específica: Si su Viewport3D fue creado fuera de la pantalla y está utilizando nuestro amigo ScreenSpaceLines3D, que necesita para asegurarse de que sus líneas se escala al menos una vez. Desde que han pirateado mi copia de ScreenSpaceLines3D. cs para eliminar el uso de CompositionTarget. Rendering, simplemente llamo a mi método Rescale () en todos los casos, justo después de que yo llamo Medida () y organizar () en el fuera de campo Viewport3D. WPF tiene algunas clases muy práctico en ella. ¿Usted ha visto RenderTargetBitmap? Básicamente, es una forma sencilla de capturar un mapa de bits de cualquier Visual WPF. Funciona con 3D también: RenderTargetBitmap bmp = new RenderTargetBitmap (anchura, altura, 96, 96, PixelFormats. Pbgra32); ¿Quieres copiar la imagen al portapapeles para que pueda pegarlo en alguna otra aplicación? ¿Quieres guardar esa imagen en un archivo PNG? PngBitmapEncoder png = new PngBitmapEncoder (); usando (Corriente del STM = File. Create (ruta de archivo)) Hábil. Las imágenes de esta serie de entradas de blog se prestaron precisamente de esta moda. Pero hay un par de detalles dignos de mención. Al utilizar RenderTargetBitmap, probablemente debería borrarlo antes de dibujar cualquier cosa en él: Rectángulo vRect = new Rectangle (); vRect. Arrange (nuevo Rect (0, 0, vRect. Width, vRect. Height)); Si su Viewport3D fue creado fuera de la pantalla, no está listo para dibujar. Es necesario darle un tamaño (el mismo que el mapa de bits estás reproduciendo en) y llamar a Medida () y Organizar () para que esté listo: myViewport3D. Measure (nuevo tamaño (anchura, altura)); myViewport3D. Arrange (nuevo Rect (0, 0, anchura, altura)); Tenga en cuenta que ninguna de las anteriores es específico de las características 3D de WPF. RenderTargetBitmap simplemente funciona con un Viewport3D como cualquier otro visual. Esta es una de las mejores cosas de WPF: Las características 3D no son especiales o extraño. Están perfectamente integrados en el marco. Si usted tiene experiencia en programación con algún otro 3D API como OpenGL o Direct3D (WPF sobre la que se construye, por cierto), es probable que esté acostumbrado a pensar en las cosas en 3D muy distinta de otras cosas. Cosas tan simples como conseguir un gráfico 3D para aparecer en la misma ventana junto a un cuadro de lista puede requerir todo tipo de gimnasia. WPF no tiene ese tipo de límites. Si usted quiere poner una escena de animación en 3D como el gráfico de un botón de la barra, se puede. Ese nivel de integración es profundamente Neato. Sólo uno más detalle sobre RenderTargetBitmap, y ésta es una especie de 3D-específica: Si su Viewport3D fue creado fuera de la pantalla y está utilizando nuestro amigo ScreenSpaceLines3D, que necesita para asegurarse de que sus líneas se escala al menos una vez. Desde que han pirateado mi copia de ScreenSpaceLines3D. cs para eliminar el uso de CompositionTarget. Rendering, simplemente llamo a mi método Rescale () en todos los casos, justo después de que yo llamo Medida () y organizar () en el fuera de campo Viewport3D.
No comments:
Post a Comment