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 leGaussianBlurEffect
fonctionne bien et leDirectionalBlurEffect
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!
Je pense qu'il UNSUPPORT – lindexi
@lindexi Ouais, je l'ai remarqué aussi l'attribut, avez-vous lu même la question complète? – Sergio0694
Je veux dire que je suis d'accord avec vous. – lindexi