J'essaie de faire une capture d'écran d'une application écrite dans WPF et l'application n'est pas capturée, dois-je utiliser un outil spécial pour prendre la capture d'écran?Prendre une capture d'écran de la fenêtre popup wpf
Répondre
Vous pouvez utiliser RenderTargetBitmap pour générer une image à partir de votre contrôle WPF.
public const int IMAGE_DPI = 96;
public Image GenerateImage(T control)
where T : Control, new()
{
Size size = RetrieveDesiredSize(control);
Rect rect = new Rect(0, 0, size.Width, size.Height);
RenderTargetBitmap rtb = new RenderTargetBitmap((int)size.Width, (int)size.Height, IMAGE_DPI, IMAGE_DPI, PixelFormats.Pbgra32);
control.Arrange(rect); //Let the control arrange itself inside your Rectangle
rtb.Render(control); //Render the control on the RenderTargetBitmap
//Now encode and convert to a gdi+ Image object
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(rtb));
using (MemoryStream stream = new MemoryStream())
{
png.Save(stream);
return Image.FromStream(stream);
}
}
private Size RetrieveDesiredSize(T control)
{
if (Equals(control.Width, double.NaN) || Equals(control.Height, double.NaN))
{
//Make sure the control has measured first:
control.Measure(new Size(double.MaxValue, double.MaxValue));
return control.DesiredSize;
}
return new Size(control.Width, control.Height);
}
Notez que cela va générer une image PNG;) Si vous souhaitez l'enregistrer comme JPEG, je vous suggère d'utiliser un autre encodeur :)
Image image = GenerateImage(gridControl);
image.Save("mygrid.png");
Je vais avoir le même problème, J'ai besoin de prendre des captures d'écran pour documenter mes tests mais je n'arrive pas à y arriver.
La fenêtre en question est une fenêtre modale sans bordure avec des coins arrondis/transparence permise. Voici mon rapport:
- L'outil de capture d'écran de HP Quality Center ne le reconnaît pas comme une fenêtre et prend donc ses captures d'écran comme si la fenêtre n'existait pas.
- SnagIt utilise un keycombo pour entrer dans le mode de capture. Une fois que le coup est frappé, le popup disparaît. Il réapparaît après la fin de la capture.
- La capture Windows standard fonctionne correctement (Alt + Prt Scr) et capture la fenêtre telle qu'elle était destinée à être capturée.
Ensuite, j'ai essayé de capturer la fenêtre avec une liste déroulante ouverte. Aucune des approches mentionnées ci-dessus ne semble fonctionner (la dernière approche capture la Fenêtre de la même manière qu'avant, sans la liste déroulante ouverte).
Pour autant que je l'ai compris tous les discours correctement, la seule chose que vous pouvez faire est de mettre en œuvre ce dans les applications ...
Vous pouvez simplement appuyer sur le bouton PrtScr (Windows copie toute l'image descktop au tampon) , puis collez-le dans Power Point et recadrez-le si vous le souhaitez.
- 1. Prendre une capture d'écran de la fenêtre en arrière-plan
- 2. Fenêtre popup semblable à la fenêtre modale
- 3. Prendre une capture d'écran d'un listclass personnalisé
- 4. Clip un wpf Popup aux limites d'une fenêtre principale
- 5. WPF Popup: Comment mettre une bordure autour du popup?
- 6. Ext Dependency Builder dans la fenêtre POPUP
- 7. Glisser le contrôle WPF Popup
- 8. Linux prendre une capture d'écran d'un espace de travail particulier
- 9. Linux: fenêtre de lancement, écran de capture
- 10. WPF Prendre une capture d'écran d'un autre thread que le thread principal
- 11. WPF Popup tab bug bug
- 12. Popup/Nouvelle fenêtre + Redirect_to + Rails
- 13. Avoir une fenêtre wpf dans une autre fenêtre wpf
- 14. Obtention d'une capture d'écran de la fenêtre enfant
- 15. Prendre une capture d'écran d'une page Web en Java
- 16. Essayer de faire pivoter le cadre avant de prendre une capture d'écran, mais obtenir des artefacts
- 17. WPF Popup Button Question
- 18. Prendre une capture d'écran avec infobulle et curseur visible
- 19. Lancer une fenêtre WPF
- 20. Événement de fermeture de la fenêtre de capture
- 21. Fenêtre d'affichage WPF avant la fenêtre principale
- 22. WPF Popup et WindowsFormsHost Problème
- 23. Capture de la touche Windows dans C# (wpf)
- 24. Appelez du code JavaScript lorsque l'utilisateur ferme une fenêtre (popup)
- 25. empêche popup d'ouvrir une nouvelle fenêtre en Ie6
- 26. Rapports d'aspect - comment s'y prendre? (Configuration de la fenêtre D3D)
- 27. (Rails) Utiliser "link_to_remote" en conjonction avec une fenêtre popup/popout ...?
- 28. Comment faire des options pour la fenêtre popup .. taille e
- 29. Comment ouvrir la vraie fenêtre popup dans Flex
- 30. Comment puis-je prendre une capture d'écran d'une seule fenêtre en utilisant Cocoa ou Carbon sur OS X?
quels outils avez-vous essayé? – Jonathan