Separate TopMost and Pin buttons

This commit is contained in:
Paddy Xu
2017-10-17 00:18:58 +03:00
parent c11bd9dc7b
commit db9111ff22
2 changed files with 28 additions and 12 deletions

View File

@@ -110,17 +110,33 @@
</TextBlock>
</Button.Content>
</Button>
<Button DockPanel.Dock="Left" x:Name="buttonTop" Tag="Auto">
<Button.Resources>
<Grid x:Key="ContentTop">
<TextBlock>&#xE898;</TextBlock>
<TextBlock>&#xE872;</TextBlock>
</Grid>
</Button.Resources>
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource CaptionButtonStyle}">
<Setter Property="Content" Value="&#xE898;" />
<Style.Triggers>
<Trigger Property="Tag" Value="Auto">
<Setter Property="Content" Value="&#xE898;" />
</Trigger>
<Trigger Property="Tag" Value="Top">
<Setter Property="Content" Value="{StaticResource ContentTop}" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button DockPanel.Dock="Left" x:Name="buttonPin" Tag="Auto">
<Button.Resources>
<Grid x:Key="ContentPin">
<TextBlock>&#xE840;</TextBlock>
<TextBlock>&#xE842;</TextBlock>
</Grid>
<Grid x:Key="ContentPinTop">
<TextBlock>&#xE840;</TextBlock>
<TextBlock>&#xE842;</TextBlock>
<TextBlock>&#xE889;</TextBlock>
</Grid>
</Button.Resources>
<Button.Style>
<Style TargetType="Button" BasedOn="{StaticResource CaptionButtonStyle}">
@@ -129,9 +145,6 @@
<Trigger Property="Tag" Value="Auto">
<Setter Property="Content" Value="&#xE840;" />
</Trigger>
<Trigger Property="Tag" Value="PinTop">
<Setter Property="Content" Value="{StaticResource ContentPinTop}" />
</Trigger>
<Trigger Property="Tag" Value="Pin">
<Setter Property="Content" Value="{StaticResource ContentPin}" />
</Trigger>

View File

@@ -63,14 +63,17 @@ namespace QuickLook
windowFrameContainer.PreviewMouseMove += ShowWindowCaptionContainer;
buttonTop.Click += (sender, e) =>
{
Topmost = !Topmost;
buttonTop.Tag = Topmost ? "Top" : "Auto";
};
buttonPin.Click += (sender, e) =>
{
if (Pinned)
{
Topmost = !Topmost;
buttonPin.Tag = Topmost ? "PinTop" : "Pin";
return;
}
Pinned = true;
buttonPin.Tag = "Pin";
ViewWindowManager.GetInstance().ForgetCurrentWindow();