public void Adorner_should_be_destroyed_on_unload() { var backstage = new Backstage { Content = new Button() }; using (var window = new TestRibbonWindow(backstage)) { Assert.That(backstage.IsLoaded, Is.True); Assert.That(backstage.GetFieldValue <object>("adorner"), Is.Null); backstage.IsOpen = true; Assert.That(backstage.GetFieldValue <object>("adorner"), Is.Not.Null); backstage.IsOpen = false; Assert.That(backstage.GetFieldValue <object>("adorner"), Is.Not.Null); window.Content = null; UIHelper.DoEvents(); Assert.That(backstage.GetFieldValue <object>("adorner"), Is.Null); } }
public void DependencyProperties_and_DataContext_should_be_inherited_from_window() { var ribbon = new Ribbon { Menu = new Backstage(), StartScreen = new StartScreen() }; var enUs = XmlLanguage.GetLanguage("en-US"); var deDe = XmlLanguage.GetLanguage("de-DE"); using (var window = new TestRibbonWindow(ribbon) { Language = deDe, DataContext = deDe }) { ribbon.ApplyTemplate(); var elemens = new Dictionary <FrameworkElement, string> { { ribbon, "Ribbon" }, { ribbon.Menu, "Menu" }, { ribbon.StartScreen, "StartScreen" }, { ribbon.QuickAccessToolBar, "QuickAccessToolBar" }, { ribbon.TabControl, "TabControl" }, { (FrameworkElement)ribbon.Template.FindName("PART_LayoutRoot", ribbon), "PART_LayoutRoot" }, }; { AssertAttElementsHaveSameValue(elemens, FrameworkElement.DataContextProperty, window); AssertAttElementsHaveSameValue(elemens, FrameworkElement.LanguageProperty, window); } { window.Language = enUs; window.DataContext = window.Language; AssertAttElementsHaveSameValue(elemens, FrameworkElement.DataContextProperty, window); AssertAttElementsHaveSameValue(elemens, FrameworkElement.LanguageProperty, window); } { window.Language = deDe; window.DataContext = window.Language; AssertAttElementsHaveSameValue(elemens, FrameworkElement.DataContextProperty, window); AssertAttElementsHaveSameValue(elemens, FrameworkElement.LanguageProperty, window); } { window.Language = enUs; window.DataContext = window.Language; AssertAttElementsHaveSameValue(elemens, FrameworkElement.DataContextProperty, window); AssertAttElementsHaveSameValue(elemens, FrameworkElement.LanguageProperty, window); } } }
public void ChangeThemeForWindowShouldThrowArgumentNullException() { using (var window = new TestRibbonWindow()) { Assert.Throws <ArgumentNullException>(() => ThemeManager.ChangeTheme((Window)null, ThemeManager.GetTheme("Light.Red"))); Assert.Throws <ArgumentNullException>(() => ThemeManager.ChangeTheme(Application.Current.MainWindow, ThemeManager.GetTheme("UnknownTheme"))); } }
public void ChangingAppThemeChangesWindowTheme() { using (var window = new TestRibbonWindow()) { var expectedTheme = ThemeManager.GetTheme("Dark.Teal"); ThemeManager.ChangeTheme(Application.Current, expectedTheme); Assert.That(ThemeManager.DetectTheme(Application.Current), Is.EqualTo(expectedTheme)); Assert.That(ThemeManager.DetectTheme(window), Is.EqualTo(expectedTheme)); } }
public void Adorner_Should_Properly_Grab_Keys_From_KeyTipInformationProvider() { { var splitButton = new SplitButton(); var panel = new Grid(); panel.Children.Add(splitButton); using (var window = new TestRibbonWindow(panel)) { var adorner = new KeyTipAdorner(splitButton, panel, null); Assert.That(adorner.KeyTipInformations, Has.Count.EqualTo(0)); } } { var splitButton = new SplitButton { KeyTip = "A" }; var panel = new Grid(); panel.Children.Add(splitButton); using (var window = new TestRibbonWindow(panel)) { var adorner = new KeyTipAdorner(splitButton, panel, null); Assert.That(adorner.KeyTipInformations, Has.Count.EqualTo(2)); Assert.That(adorner.KeyTipInformations[0].Keys, Is.EqualTo("AA")); Assert.That(adorner.KeyTipInformations[1].Keys, Is.EqualTo("AB")); } } { var splitButton = new SplitButton { SecondaryKeyTip = "B" }; var panel = new Grid(); panel.Children.Add(splitButton); using (var window = new TestRibbonWindow(panel)) { var adorner = new KeyTipAdorner(splitButton, panel, null); Assert.That(adorner.KeyTipInformations, Has.Count.EqualTo(1)); Assert.That(adorner.KeyTipInformations[0].Keys, Is.EqualTo("B")); } } }
public void ChangeBaseColorAndColorScheme() { { var currentTheme = ThemeManager.DetectTheme(Application.Current); Assert.That(currentTheme, Is.Not.Null); ThemeManager.ChangeTheme(Application.Current, ThemeManager.BaseColorDark, "Yellow"); Assert.That(ThemeManager.DetectTheme(Application.Current).BaseColorScheme, Is.EqualTo(ThemeManager.BaseColorDark)); Assert.That(ThemeManager.DetectTheme(Application.Current).ColorScheme, Is.EqualTo("Yellow")); } { using (var window = new TestRibbonWindow()) { var currentTheme = ThemeManager.DetectTheme(window); Assert.That(currentTheme, Is.Not.Null); ThemeManager.ChangeTheme(window, ThemeManager.BaseColorLight, "Green"); Assert.That(ThemeManager.DetectTheme(window).BaseColorScheme, Is.EqualTo(ThemeManager.BaseColorLight)); Assert.That(ThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo("Green")); } } { var currentTheme = ThemeManager.DetectTheme(Application.Current); Assert.That(currentTheme, Is.Not.Null); var control = new Control(); ThemeManager.ChangeTheme(control.Resources, currentTheme, ThemeManager.BaseColorDark, "Red"); Assert.That(ThemeManager.DetectTheme(control.Resources).BaseColorScheme, Is.EqualTo(ThemeManager.BaseColorDark)); Assert.That(ThemeManager.DetectTheme(control.Resources).ColorScheme, Is.EqualTo("Red")); } Assert.That(ThemeManager.DetectTheme(Application.Current).ColorScheme, Is.EqualTo("Yellow")); }
public void ChangeBaseColor() { { var currentTheme = ThemeManager.DetectTheme(Application.Current); Assert.That(currentTheme, Is.Not.Null); ThemeManager.ChangeThemeBaseColor(Application.Current, ThemeManager.GetInverseTheme(currentTheme).BaseColorScheme); Assert.That(ThemeManager.DetectTheme(Application.Current).BaseColorScheme, Is.Not.EqualTo(currentTheme.BaseColorScheme)); Assert.That(ThemeManager.DetectTheme(Application.Current).ColorScheme, Is.EqualTo(currentTheme.ColorScheme)); } { using (var window = new TestRibbonWindow()) { var currentTheme = ThemeManager.DetectTheme(window); Assert.That(currentTheme, Is.Not.Null); ThemeManager.ChangeThemeBaseColor(window, ThemeManager.GetInverseTheme(currentTheme).BaseColorScheme); Assert.That(ThemeManager.DetectTheme(window).BaseColorScheme, Is.Not.EqualTo(currentTheme.BaseColorScheme)); Assert.That(ThemeManager.DetectTheme(window).ColorScheme, Is.EqualTo(currentTheme.ColorScheme)); } } { var currentTheme = ThemeManager.DetectTheme(Application.Current); Assert.That(currentTheme, Is.Not.Null); var control = new Control(); ThemeManager.ChangeThemeBaseColor(control.Resources, currentTheme, ThemeManager.GetInverseTheme(currentTheme).BaseColorScheme); Assert.That(ThemeManager.DetectTheme(control.Resources).BaseColorScheme, Is.Not.EqualTo(currentTheme.BaseColorScheme)); Assert.That(ThemeManager.DetectTheme(control.Resources).ColorScheme, Is.EqualTo(currentTheme.ColorScheme)); } }
public void With_Many_Tab() { var container = new RibbonTabsContainer(); var longestTab = new RibbonTabItem { Header = "Longest header text" }; var secondLongestTab = new RibbonTabItem { Header = "Header text" }; var middleTab = new RibbonTabItem { Header = "Header" }; var smallTab = new RibbonTabItem { Header = "Text" }; container.Children.Add(longestTab); container.Children.Add(secondLongestTab); container.Children.Add(middleTab); container.Children.Add(smallTab); var childrenWidths = new[] { longestTab, secondLongestTab, middleTab, smallTab }.Select(x => x.DesiredSize.Width); using (var testWindow = new TestRibbonWindow(container) { Width = ReferenceWidth }) { Assert.That(container.DesiredSize, Is.EqualTo(new Size(290, ReferenceHeight))); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 121, 78, 54, 37 })); container.Measure(new Size(290, ReferenceHeight)); Assert.That(container.DesiredSize, Is.EqualTo(new Size(290, ReferenceHeight))); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 121, 78, 54, 37 })); container.Measure(new Size(289, ReferenceHeight)); Assert.That(container.DesiredSize, Is.EqualTo(new Size(283, ReferenceHeight))); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 114, 78, 54, 37 })); container.Measure(new Size(230, ReferenceHeight)); Assert.That(container.DesiredSize, Is.EqualTo(new Size(229, ReferenceHeight))); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 67, 71, 54, 37 })); container.Measure(new Size(150, ReferenceHeight)); Assert.That(container.DesiredSize, Is.EqualTo(new Size(147, ReferenceHeight))); Assert.That(container.ExtentWidth, Is.EqualTo(container.ViewportWidth)); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 37, 33, 40, 37 })); container.Measure(new Size(130, ReferenceHeight)); Assert.That(container.DesiredSize, Is.EqualTo(new Size(126, ReferenceHeight))); Assert.That(container.ExtentWidth, Is.EqualTo(container.ViewportWidth)); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 30, 33, 33, 30 })); container.Measure(new Size(120, ReferenceHeight)); Assert.That(container.DesiredSize, Is.EqualTo(new Size(120, ReferenceHeight))); Assert.That(container.ExtentWidth, Is.EqualTo(121)); Assert.That(childrenWidths, Is.EquivalentTo(new[] { 30, 30, 30, 30 })); } //await Task.Yield(); }