Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions Microsoft.Toolkit.Uwp.UI.Media/Shadows/AttachedCardShadow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,12 @@ protected override void SetElementChildVisual(AttachedShadowElementContext conte
else
{
base.SetElementChildVisual(context);

// Reset context.SpriteVisual.Size and RelativeSizeAdjustment to default values
// as they may be changed in the block above.
context.SpriteVisual.Size = Vector2.Zero;
context.SpriteVisual.RelativeSizeAdjustment = Vector2.One;

context.RemoveAndDisposeResource(OpacityMaskVisualSurfaceResourceKey);
context.RemoveAndDisposeResource(OpacityMaskSurfaceBrushResourceKey);
context.RemoveAndDisposeResource(OpacityMaskVisualResourceKey);
Expand All @@ -305,25 +311,33 @@ protected internal override void OnSizeChanged(AttachedShadowElementContext cont
{
Vector2 sizeAsVec2 = newSize.ToVector2();

CompositionRoundedRectangleGeometry geometry = context.GetResource(RoundedRectangleGeometryResourceKey);
if (geometry != null)
if (context.TryGetResource(RoundedRectangleGeometryResourceKey, out CompositionRoundedRectangleGeometry geometry))
{
geometry.Size = sizeAsVec2;
}

CompositionVisualSurface visualSurface = context.GetResource(VisualSurfaceResourceKey);
if (geometry != null)
if (context.TryGetResource(VisualSurfaceResourceKey, out CompositionVisualSurface visualSurface))
{
visualSurface.SourceSize = sizeAsVec2;
}

ShapeVisual shapeVisual = context.GetResource(ShapeVisualResourceKey);
if (geometry != null)
if (context.TryGetResource(ShapeVisualResourceKey, out ShapeVisual shapeVisual))
{
shapeVisual.Size = sizeAsVec2;
}

if (context.TryGetResource(OpacityMaskVisualSurfaceResourceKey, out CompositionVisualSurface opacityMaskVisualSurface))
{
opacityMaskVisualSurface.SourceSize = sizeAsVec2 + new Vector2(MaxBlurRadius * 2);
}

if (InnerContentClipMode is InnerContentClipMode.CompositionMaskBrush)
{
context.SpriteVisual.Size = sizeAsVec2;
}

UpdateShadowClip(context);
UpdateVisualOpacityMask(context);

base.OnSizeChanged(context, newSize, previousSize);
}
Expand Down