2017-05-23 4 views
-1

Ich arbeite mit einigen Win2D-Effekten und den Kompositions-APIs in einer UWP-Anwendung und habe einige Probleme mit einigen der verfügbaren Effekte.Einige Win2D-Effekte funktionieren nicht mit Composition-APIs (nicht unterstützt?)

Hier ist eine Arbeitsmethode verwende ich einige Inhalte hinter einem Zielelement verschwimmen:

public static SpriteVisual GetAttachedBlur<T>(
    [NotNull] this T element, float blur, int ms) where T : FrameworkElement 
{ 
    // Get the visual and the compositor 
    Visual visual = element.GetVisual(); 
    Compositor compositor = visual.Compositor; 

    // Create the blur effect and the effect factory 
    GaussianBlurEffect blurEffect = new GaussianBlurEffect 
    { 
     Name = "Blur", 
     BlurAmount = blur, 
     BorderMode = EffectBorderMode.Hard, 
     Optimization = EffectOptimization.Balanced, 
     Source = new CompositionEffectSourceParameter("source") 
    }; 
    CompositionEffectFactory effectFactory = compositor.CreateEffectFactory(blurEffect); 

    // Setup the rest of the effect 
    CompositionEffectBrush effectBrush = effectFactory.CreateBrush(); 
    effectBrush.SetSourceParameter("source", compositor.CreateBackdropBrush()); 

    // Assign the effect to a brush and display it 
    SpriteVisual sprite = compositor.CreateSpriteVisual(); 
    sprite.Brush = effectBrush; 
    sprite.Size = new Vector2((float)element.ActualWidth, (float)element.ActualHeight); 
    ElementCompositionPreview.SetElementChildVisual(element, sprite); 
    return sprite; 
} 
Jetzt

, es perfekt funktioniert gut, aber wenn ich versuche, dass GaussianBlurEffect Effekt mit zum Beispiel ersetzen ein DirectionalBlurEffect, erhalte ich eine Ausnahme, wenn ich die CreateEffectFactory Methode aufrufen, sagen, dass der Eingangseffekt nicht unterstützt wird.

Nun, ich looked at the documentation und es scheint, dass beide diese Effekte haben die [NoComposition] Zuschreibung, so meine erste Frage ist:

Wenn beide die Auswirkungen nicht unterstützt werden ([NoComposition] Attribut), warum ist es, dass die GaussianBlurEffect funktioniert gut und die DirectionalBlurEffect nicht?

Und die zweite Frage, die ich habe:

Gibt es eine andere Art und Weise/zu nutzen gilt, dass DirectionalBlurEffect? Es gibt einige Win2D-Effekte, die als [NoComposition] markiert sind, die ich gerne verwenden würde, gibt es einen Workaround dafür oder muss ich nur auf sie verzichten?

Vielen Dank für Ihre Hilfe!

+0

Ich denke, es UNSUPPORT – lindexi

+0

@lindexi Ja, ich auch das Attribut bemerkt habe, hast du auch gelesen die vollständige Frage? – Sergio0694

+1

Ich meine, ich stimme dir zu. – lindexi

Antwort

0

Sieht aus wie die Win2D Dokumentation nicht aktualisiert wurde, und erst jetzt die GaussianBlurEffect unterstützt wird (siehe here)

Verwandte Themen