2016-03-09 3 views
5

Ich habe eine WriteableBitmap, die Video im Fenster anzeigen würde. Momentan muss ich den Untertitel in der Unterseite verbergen. Ich möchte einen Aero-Effekt verwenden, aber nur den unteren Teil der WriteableBitmap abdecken.Ist es möglich, Aero-Effekt in Control selbst in WPF hinzuzufügen?

Welche meine, das ist das Original:

enter image description here

Und ich will ein Grid Control hinzufügen, die Aero-Effekt hat, wie folgt aus:

enter image description here

Aber ich don‘ Ich weiß schon wie, ich denke schon darüber nach, das Bild unten zu nehmen und einen Effekt zu benutzen, und dann auf die Spitze zu setzen, Aber es sieht eine schlechte Leistung für writableBitmap aus, weil das bedeutet, dass es 25 um Bild e verarbeiten muss ... sehr zweiten

Update: Hier ist mein Code:

<Grid> 
    <Image x:Name="imgFrame"/> 
</Grid> 

private WriteableBitmap bitmap; 

private void OnVideoFrameRunning(FrameArgs e) 
{ 
    if (null == bitmap) 
    { 
     bitmap = new WriteableBitmap(e.Width, e.Height, 72, 72,PixelFormats.Bgr24, null); 
     imgFrame.Source = bitmap; 
    } 

    bitmap.WritePixels(new Int32Rect(0, 0, e.Width, e.Height), e.Buffer, e.Width * 3, 0, 0); 
} 
+0

Der "Aero-Effekt" wird von DrawThemeTextEx(), DTTOPS.iGlowSize -Option erstellt. Die Chancen, dass Sie dies in WPF verwenden können, sind nicht gut, das schreit Luftraumproblem. OuterGlowBitmapEffect ist in 4.0 verschwunden, du musst für DropShadowEffect schießen. –

+1

Die Frage scheint mit wpf nichts zu tun zu haben. Ziehen Sie in Betracht, das Tag zu löschen. Dies ist mehr Bildverarbeitung Frage als alles wpf (in Anbetracht Sie sind nicht mit der einzigen Antwort unten gegeben) – Maverik

+0

Haben Sie den Text auf der WritableBitmap oder wollen Sie einfach den Text über das Steuerelement in einem WPF-Fenster anzeigen ? – FriendlyGuy

Antwort

2

Sie so etwas tun könnte:

<Grid> 
    <Grid.Effect> 
     <BlurEffect Radius="18"/> 
    </Grid.Effect> 
    <TextBlock HorizontalAlignment="Center" 
       VerticalAlignment="Bottom" 
       FontSize="40" 
       Foreground="#444444" 
       Text="Some Subtitles" 
       Margin="0 0 0 20"/> 
</Grid> 

Radius = "0": Radius="0"

Radius = "18":

Radius="18"

+0

Sieht gut aus, aber ich muss nur den Untertitel auf der WritableBitmap abdecken. – qakmak

+2

@qakmak Wie es typisch für SO ist, bitte geben Sie Ihren Code, der zeigt, was Sie bereits getan haben und die relevanten Bits, wo Sie in Ihrer Frage kämpfen. Daher ist dies die erwartete Antwort und sollte akzeptiert werden, wenn Sie Ihre Tags und den allgemeinen Informationsmangel in Frage stellen. – Maverik

+0

Ich denke sogar ich lege meinen Code, den du antwortest, ist zu weit, wie ich schon sagte, ich brauche den Unschärfebereich im Bild unten, nicht alle Bilder. Jetzt gibst du mir das All-Blur-Grid. – qakmak

Verwandte Themen