2017-05-23 6 views
-1

Je travaille avec certains effets Win2D et les API de composition dans une application UWP et j'ai quelques problèmes avec certains des effets disponibles.Certains effets Win2D ne fonctionnent pas avec les API de composition (non pris en charge?)

est ici une méthode de travail que j'utilise pour brouiller un contenu derrière un élément cible:

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; 
} 

Maintenant, cela fonctionne parfaitement bien, mais si je tente de remplacer cet effet GaussianBlurEffect avec par exemple un DirectionalBlurEffect, je reçois une exception lorsque j'appelle la méthode CreateEffectFactory, indiquant que l'effet d'entrée n'est pas pris en charge.

Maintenant, je looked at the documentation et il semble que ces deux effets ont l'attribution [NoComposition], donc ma première question est:

Si les deux effets ne sont pas supportés ([NoComposition] attribut), pourquoi est-ce que le GaussianBlurEffect fonctionne bien et le DirectionalBlurEffect ne fonctionne pas?

Et la deuxième question:

Y at-il une autre façon d'utiliser/appliquerai DirectionalBlurEffect? Il y a un certain nombre d'effets Win2D marqués [NoComposition] que j'aimerais utiliser, y a-t-il une solution de contournement ou dois-je simplement abandonner?

Merci pour votre aide!

+0

Je pense qu'il UNSUPPORT – lindexi

+0

@lindexi Ouais, je l'ai remarqué aussi l'attribut, avez-vous lu même la question complète? – Sergio0694

+1

Je veux dire que je suis d'accord avec vous. – lindexi

Répondre

0

On dirait que la documentation Win2D n'a pas été mis à jour, et en ce moment que soutient le GaussianBlurEffect (voir here)