#c# #xaml #uwp #win2d
#c# #xaml #uwp #win2d
Вопрос:
Я пытаюсь создать отбрасываемую тень в приложении UWP с помощью пакета Win2D. Это строка за строкой из документов (https://learn.microsoft.com/en-us/windows/uwp/composition/using-the-visual-layer-with-xaml ). Почему тень выглядит вот так, а не гладкой:
Xaml:
<Grid >
<Border x:Name="ShadowHost" />
<Border Width="562" Height="250" Background="White" />
</Grid>
C#:
private void OnLoaded(object sender, RoutedEventArgs e)
{
Compositor shadowCompositor;
Visual hostVisual;
hostVisual = ElementCompositionPreview.GetElementVisual(this.ShadowHost);
shadowCompositor = hostVisual.Compositor;
var dropShadow = shadowCompositor.CreateDropShadow();
dropShadow.Offset = new Vector3(0, 16, 0);
dropShadow.BlurRadius = 80.0f;
dropShadow.Color = Color.FromArgb(128, 0, 0, 0);
var spriteVisual = shadowCompositor.CreateSpriteVisual();
spriteVisual.Size = new Vector2(562f, 250f);
spriteVisual.Shadow = dropShadow;
ElementCompositionPreview.SetElementChildVisual(this.ShadowHost, spriteVisual);
var bindSizeAnimation = shadowCompositor.CreateExpressionAnimation("hostVisual.Size");
bindSizeAnimation.SetReferenceParameter("hostVisual", hostVisual);
spriteVisual.StartAnimation("Size", bindSizeAnimation);
}
Комментарии:
1. Каждый раз, когда это когда-либо случалось со мной, я списывал это на проблему с драйвером / видеокартой — потому что на одних устройствах это выглядит так, а на других идеально, — но я не смог точно определить, почему.