J'ai une application WPF qui génère des rapports. J'ai besoin de lancer cette application à partir d'un WindowService, et je l'exécute actuellement à partir d'un service s'exécutant en tant que LocalSystem. Tout le rendu est effectué correctement, à l'exception d'un affichage Pie 3d dans un objet Viewport3D. Ce est une extraction de code montrant le comportement:Rendu Viewport3d à partir d'un service Windows
static class VisualSaver
{
public static void Save(Visual v, int width, int height, string file,Brush background)
{
RenderTargetBitmap bmp = new RenderTargetBitmap(
width, height, 96, 96, PixelFormats.Pbgra32);
Rectangle vRect = new Rectangle();
vRect.Width = width;
vRect.Height = height;
vRect.Fill = background;
vRect.Arrange(new Rect(0, 0, vRect.Width, vRect.Height));
bmp.Render(vRect);
bmp.Render(v);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(bmp));
using (Stream stm = File.Create(file))
{
png.Save(stm);
}
}
}
Et ceci est le code d'appel:
VisualSaver.Save(viewport,310,340,PathExtension.GetTempFileWithExtension("png"),Brushes.White);
Et oui la fenêtre est correctement Mesuré/Disposé.
Existe-t-il une limitation dans le rendu des applications non interactives d'objets 3D, je suis dans Windows7 - 2008 serveur env. ? Y a-t-il une solution de contournement?