2010-03-17 9 views
2

J'écris une application C# WPF qui crée une capture vidéo de la fenêtre active. Ce que je veux faire est de superposer un fichier .png transparent dans le coin de la fenêtre active pendant qu'une capture est en cours afin que toutes les vidéos créées par mon application soient filigranées.Superposition d'image sur une fenêtre externe

Si j'ai le handle IntPntr de la fenêtre que je capture et un fichier image - quelle est la meilleure façon de faire à ce sujet?

Merci

Répondre

1

Construire une nouvelle HwndSource, en passant la poignée IntPtr du parent:

var hwndSource = new HwndSource(new HwndSourceParameters("OverlayWindow") 
{ 
    ParentWindow = parentHandleIntPtr, 
    UsesPerPixelOpacity = true, 
    Width = 100, 
    Height = 100, 
}) 
{ 
    RootVisual = new Image { Source = watermarkBitmapSource }, 
}; 

Si cela ne fonctionne pas bien loin, testez votre code "nouvelle image ..." dans un fenêtre régulière WPF pour s'assurer que cela fonctionne. Si vous ne voyez toujours rien, essayez de présenter quelque chose comme un CheckBox ou TextBlock en utilisant HwndSource pour vous assurer que cela fonctionne, puis mettez-les ensemble.