J'ai cherché et cherché mais n'ai pas été capable de trouver n'importe quoi avec le même problème que moi. J'essaie de rendre des captures d'écran haute résolution/dpi d'une application WPF. Le seul problème est que j'ai besoin d'inclure des informations à partir des info-bulles du graphique dans le rendu, à part que je peux enregistrer des captures d'écran très bien. J'utilise actuellement Infragistics XamDataChart et je génère les info-bulles en code plutôt xaml.WPF Y compris info-bulle dans Render avec RenderTargetBitmap
Quelqu'un at-il une idée de comment obtenir l'info-bulle dans l'arbre visuel afin qu'il rende? Ou être capable de rendre toute la fenêtre et tout ce qui s'y trouve, y compris les superpositions d'info-bulles?
Code pour le rendu:
public static void RenderVisualToFile(this FrameworkElement visual)
{
var width = (int)visual.RenderSize.Width;
var height = (int)visual.RenderSize.Height;
RenderTargetBitmap renderTarget = new RenderTargetBitmap(width * 4, height * 4, 384, 384, PixelFormats.Pbgra32);
renderTarget.Render(visual);
// Encode and save to PNG file
var enc = new PngBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(renderTarget));
if (Directory.Exists("Screenshots"))
{
using (var stm = File.Create(@"Screenshots\Render_" + DateTime.Now.ToString("yyMMMdd_HHmmss") + ".png"))
enc.Save(stm);
}
else
{
Directory.CreateDirectory("Screenshots");
using (var stm = File.Create(@"Screenshots\Render_" + DateTime.Now.ToString("yyMMMdd_HHmmss") + ".png"))
enc.Save(stm);
}
}
Et j'appelle cela dans le code MainWindow derrière.
if (e.Key == Key.PrintScreen)
{
this.RenderVisualToFile();
}
jamais obtenir une réponse à cela? Merci. –