示例#1
0
        async void OnFocusChanged(object?sender, FocusManager.FocusChangedEventArgs e)
        {
            if (e.Current == null)
            {
                return;
            }

            if (DrawerViewGroup.FindDescendantByID(e.Current.ID) != null)
            {
                await OpenAsync(true);
            }
            else if (ContentViewGroup.FindDescendantByID(e.Current.ID) != null)
            {
                await CloseAsync(true);
            }
        }
示例#2
0
        Task ResizeDrawerAsync(double start, double end)
        {
            var tcs = new TaskCompletionSource <bool>();

            var animation = new Animation(v =>
            {
                var r = start + ((end - start) * v);
                ContentViewGroup.UpdatePosition(new Point(r, 0));
                DrawerViewGroup.UpdateSize(new Size(r, Size.Height));
            }, easing: Easing.Linear);

            animation.Commit(this, "ResizeDrawer", length: 200, finished: (l, c) =>
            {
                ContentViewGroup.UpdatePosition(new Point(end, 0));
                DrawerViewGroup.UpdateSize(new Size(end, Size.Height));

                tcs.SetResult(true);
            });

            return(tcs.Task);
        }