Skip to content

Commit

Permalink
fix visibility for Icon
Browse files Browse the repository at this point in the history
  • Loading branch information
punker76 committed Feb 25, 2015
1 parent 2f14b40 commit 1e2c54e
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 7 deletions.
13 changes: 6 additions & 7 deletions MahApps.Metro/Controls/MetroWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ private static void OnShowIconOnTitleBarPropertyChangedCallback(DependencyObject
var window = (MetroWindow)d;
if (e.NewValue != e.OldValue)
{
window.SetVisibiltyForIcon((bool)e.NewValue);
window.SetVisibiltyForIcon();
}
}

Expand Down Expand Up @@ -492,21 +492,20 @@ private static void TitlebarHeightPropertyChangedCallback(DependencyObject depen
}
}

private void SetVisibiltyForIcon(bool visible)
private void SetVisibiltyForIcon()
{
if (this.icon != null)
{
var iconVisibility = (this.IconOverlayBehavior.HasFlag(WindowCommandsOverlayBehavior.HiddenTitleBar) && !this.ShowTitleBar)
|| (visible && this.ShowTitleBar)
? Visibility.Visible
: Visibility.Collapsed;
var isVisible = (this.IconOverlayBehavior.HasFlag(WindowCommandsOverlayBehavior.HiddenTitleBar) && !this.ShowTitleBar)
|| (this.ShowIconOnTitleBar && this.ShowTitleBar);
var iconVisibility = isVisible ? Visibility.Visible : Visibility.Collapsed;
this.icon.Visibility = iconVisibility;
}
}

private void SetVisibiltyForAllTitleElements(bool visible)
{
this.SetVisibiltyForIcon(visible);
this.SetVisibiltyForIcon();
var newVisibility = visible && this.ShowTitleBar ? Visibility.Visible : Visibility.Collapsed;
if (this.titleBar != null)
{
Expand Down
51 changes: 51 additions & 0 deletions Mahapps.Metro.Tests/MetroWindowTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,57 @@ public async Task IconShouldBeVisibleByDefault()
Assert.Equal(Visibility.Visible, icon.Visibility);
}

[Fact]
public async Task IconShouldBeCollapsedWithShowIconOnTitleBarFalse()
{
await TestHost.SwitchToAppThread();

var window = await WindowHelpers.CreateInvisibleWindowAsync<MetroWindow>(w => w.ShowIconOnTitleBar = false);
var icon = window.GetPart<ContentControl>("PART_Icon");

Assert.Equal(Visibility.Collapsed, icon.Visibility);
}

[Fact]
public async Task IconShouldBeCollapsedWithShowTitleBarFalse()
{
await TestHost.SwitchToAppThread();

var window = await WindowHelpers.CreateInvisibleWindowAsync<MetroWindow>(w => w.ShowTitleBar = false);
var icon = window.GetPart<ContentControl>("PART_Icon");

Assert.Equal(Visibility.Collapsed, icon.Visibility);
}

[Fact]
public async Task IconShouldBeVisibleWithShowTitleBarFalseAndOverlayBehaviorHiddenTitleBar()
{
await TestHost.SwitchToAppThread();

var window = await WindowHelpers.CreateInvisibleWindowAsync<MetroWindow>(w => {
w.IconOverlayBehavior = WindowCommandsOverlayBehavior.HiddenTitleBar;
w.ShowTitleBar = false;
});
var icon = window.GetPart<ContentControl>("PART_Icon");

Assert.Equal(Visibility.Visible, icon.Visibility);
}

[Fact]
public async Task IconShouldBeHiddenWithChangedShowIconOnTitleBar()
{
await TestHost.SwitchToAppThread();

var window = await WindowHelpers.CreateInvisibleWindowAsync<MetroWindow>();
var icon = window.GetPart<ContentControl>("PART_Icon");

Assert.Equal(Visibility.Visible, icon.Visibility);

window.ShowIconOnTitleBar = false;

Assert.Equal(Visibility.Collapsed, icon.Visibility);
}

[Fact]
public async Task IconCanOverlayHiddenTitlebar()
{
Expand Down

0 comments on commit 1e2c54e

Please sign in to comment.