public void ShowFlyout(string name, object dataContext) { Argument.IsNotNullOrWhitespace(() => name); if (!_flyouts.ContainsKey(name)) { throw Log.ErrorAndCreateException <InvalidOperationException>("Flyout '{0}' is not added yet", name); } var flyoutInfo = _flyouts[name]; var flyout = flyoutInfo.Flyout; var flyoutsControl = flyout.Parent as FlyoutsControl; if (flyoutsControl != null) { flyoutsControl.BorderThickness = new Thickness(1); flyoutsControl.BorderBrush = ThemeHelper.GetAccentColorBrush(); } flyout.Content = flyoutInfo.Content; flyout.DataContext = dataContext; flyout.Dispatcher.BeginInvoke(() => flyout.IsOpen = true); }
public void ShowFlyout(string name, object dataContext) { Argument.IsNotNullOrWhitespace(() => name); if (!_flyouts.ContainsKey(name)) { throw Log.ErrorAndCreateException <InvalidOperationException>("Flyout '{0}' is not added yet", name); } var flyoutInfo = _flyouts[name]; var flyout = flyoutInfo.Flyout; flyout.Dispatcher.BeginInvoke(() => { var flyoutsControl = flyout.Parent as FlyoutsControl; if (flyoutsControl != null) { flyoutsControl.SetCurrentValue(System.Windows.Controls.Control.BorderThicknessProperty, new Thickness(1)); flyoutsControl.SetCurrentValue(System.Windows.Controls.Control.BorderBrushProperty, ThemeHelper.GetAccentColorBrush()); } flyout.SetCurrentValue(System.Windows.Controls.ContentControl.ContentProperty, flyoutInfo.Content); flyout.SetValue(FrameworkElement.DataContextProperty, dataContext); flyout.SetCurrentValue(Flyout.IsOpenProperty, true); }); }