コード例 #1
0
        protected override void OnAttached()
        {
            if (Element is not View elementView)
            {
                return;
            }

            switch (state)
            {
            case ShadowEffectState.Initialized:
                shadowPanel = new StackLayout()
                {
                    Children = { new Grid() }
                };

                state = ShadowEffectState.PanelCreated;
                MoveElementTo(elementView, shadowPanel);
                break;

            case ShadowEffectState.PanelCreated:
                AppendShadow();
                state = ShadowEffectState.Attached;
                break;

            default:
                break;
            }
        }
コード例 #2
0
        protected override void OnDetached()
        {
            if (state != ShadowEffectState.Attached)
            {
                return;
            }

            if (View != null)
            {
                View.SizeChanged -= ViewSizeChanged;
            }

            shadow?.Dispose();
            shadow = null;
            spriteVisual?.Dispose();
            spriteVisual = null;

            state = ShadowEffectState.PanelCreated;
        }