public static async Task TryCloseCurrent() { MDrawer drawer = null; lock (_lockObj) { drawer = _current; if (drawer == null || drawer.Parent == null) { return; } _current = null; } await drawer.Hide(); }
public async void OnUpdate() { if (_view == null) { return; } var _drawer = _view.GetFirstAncestorOfType <MDrawer>(); if (_drawer != null) { return; } MDrawer.TryCloseCurrent(); if (_callback != null) { _callback(); } }
public static async Task Show(IDrawerContent childView, double pRange = 315.0, bool isTapDismiss = false, Mode mode = Mode.Right) { TryCloseCurrent(); MDrawer _view = new MDrawer(mode) { Content = childView, PRange = pRange, _isTapDismiss = isTapDismiss }; childView.Drawer = _view; _current = _view; await AwaitableContainer.Show(_view, false); if (childView is FrameworkElement) { (childView as FrameworkElement).DataContext = null; } if (_current == _view) { _current = null; } _view.Content = null; childView.Drawer = null; }
private async void DrawerTest1(object sender, RoutedEventArgs e) { await MDrawer.Show(new DrawerContent(), 100, true, MDrawer.Mode.Right); }
private async void DrawerTest(object sender, RoutedEventArgs e) { // App.NavigationManager.Navigate(typeof(TestNDrawer)); await MDrawer.Show(new DrawerContent(), 100, true, MDrawer.Mode.Bottom); }