mirror of
https://github.com/QL-Win/QuickLook.git
synced 2026-02-28 01:00:17 +08:00
162 lines
10 KiB
XML
162 lines
10 KiB
XML
<Window
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:fa="http://schemas.fontawesome.io/icons/"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:busyDecorator="clr-namespace:QuickLook.Controls.BusyDecorator"
|
|
xmlns:glassLayer="clr-namespace:QuickLook.Controls.GlassLayer"
|
|
xmlns:converters="clr-namespace:QuickLook.Converters"
|
|
mc:Ignorable="d" x:Class="QuickLook.MainWindowTransparent" x:Name="mainWindow"
|
|
UseLayoutRounding="True"
|
|
d:DesignWidth="624" d:DesignHeight="700"
|
|
MinWidth="275" MinHeight="150"
|
|
WindowStartupLocation="CenterScreen"
|
|
Focusable="False" WindowStyle="None"
|
|
AllowsTransparency="True"
|
|
Background="Transparent"
|
|
ShowActivated="False" ShowInTaskbar="False">
|
|
<Window.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="Styles/MainWindowStyles.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
<converters:BooleanToResizeModeConverter x:Key="BooleanToResizeModeConverter" />
|
|
<converters:BooleanToResizeBorderThicknessConverter x:Key="BooleanToResizeBorderThicknessConverter" />
|
|
<converters:BooleanToVisibilityCollapsedConverter x:Key="BooleanToVisibilityCollapsedConverter" />
|
|
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
|
<converters:ScaledValueConverter x:Key="ScaledValueConverter" />
|
|
</ResourceDictionary>
|
|
</Window.Resources>
|
|
<WindowChrome.WindowChrome>
|
|
<WindowChrome x:Name="chrome"
|
|
ResizeBorderThickness="{Binding ContextObject.CanResize, Converter={StaticResource BooleanToResizeBorderThicknessConverter}, ElementName=mainWindow}"
|
|
UseAeroCaptionButtons="False" />
|
|
</WindowChrome.WindowChrome>
|
|
<Border>
|
|
<Border.Effect>
|
|
<DropShadowEffect BlurRadius="{StaticResource MainWindowShadowBlurRadius}" ShadowDepth="0" Opacity="0.6"
|
|
Color="Gray" />
|
|
</Border.Effect>
|
|
<Grid Background="{StaticResource MainWindowBackground}"
|
|
Margin="{StaticResource MainWindowShadowPaddingThinkness}">
|
|
<Grid x:Name="viewerRootContainer" ZIndex="190">
|
|
<Grid x:Name="windowCaptionContainer" Height="{StaticResource MainWindowCaptionHeight}"
|
|
VerticalAlignment="Top"
|
|
ZIndex="100">
|
|
<Grid.Resources>
|
|
<Storyboard x:Key="HideTitlebarStoryboard">
|
|
<DoubleAnimation
|
|
Storyboard.Target="{Binding Source={x:Reference windowCaptionContainer}}"
|
|
Storyboard.TargetProperty="Opacity" To="0" BeginTime="0:0:3"
|
|
Duration="0:0:0.05" Completed="RemoveWindowChromeCaption" />
|
|
</Storyboard>
|
|
<Storyboard x:Key="ShowTitlebarStoryboard">
|
|
<DoubleAnimation
|
|
Storyboard.Target="{Binding Source={x:Reference windowCaptionContainer}}"
|
|
Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.05"
|
|
Completed="RestoreWindowChromeCaption" />
|
|
</Storyboard>
|
|
</Grid.Resources>
|
|
<Grid.Style>
|
|
<Style TargetType="Grid">
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition
|
|
Binding="{Binding IsMouseOver, ElementName=windowCaptionContainer}"
|
|
Value="False" />
|
|
<Condition
|
|
Binding="{Binding ContextObject.AutoHideTitlebar, ElementName=mainWindow}"
|
|
Value="True" />
|
|
</MultiDataTrigger.Conditions>
|
|
<MultiDataTrigger.EnterActions>
|
|
<BeginStoryboard Storyboard="{StaticResource HideTitlebarStoryboard}" />
|
|
</MultiDataTrigger.EnterActions>
|
|
<MultiDataTrigger.ExitActions>
|
|
<BeginStoryboard Storyboard="{StaticResource ShowTitlebarStoryboard}" />
|
|
</MultiDataTrigger.ExitActions>
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Grid.Style>
|
|
<glassLayer:GlassLayer BlurredElement="{Binding ElementName=containerPanel}" />
|
|
<DockPanel>
|
|
<Border x:Name="buttonCloseWindow" Style="{StaticResource CaptionButtonStyle}"
|
|
DockPanel.Dock="Right">
|
|
<fa:ImageAwesome Icon="TimesCircle"
|
|
Foreground="{StaticResource CaptionButtonIconForeground}" />
|
|
</Border>
|
|
<Border x:Name="buttonWindowStatus" Style="{StaticResource CaptionButtonStyle}"
|
|
DockPanel.Dock="Right">
|
|
<fa:ImageAwesome Foreground="{StaticResource CaptionButtonIconForeground}">
|
|
<fa:ImageAwesome.Style>
|
|
<Style TargetType="{x:Type fa:ImageAwesome}">
|
|
<Setter Property="Icon" Value="WindowMaximize" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding WindowState, ElementName=mainWindow}"
|
|
Value="Maximized">
|
|
<Setter Property="Icon" Value="WindowRestore" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding WindowState, ElementName=mainWindow}"
|
|
Value="Normal">
|
|
<Setter Property="Icon" Value="WindowMaximize" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</fa:ImageAwesome.Style>
|
|
</fa:ImageAwesome>
|
|
</Border>
|
|
<Button x:Name="buttonOpenWith" DockPanel.Dock="Right" Content="Open with..." Height="20"
|
|
Margin="10,0,0,0" Padding="5,0"
|
|
MaxWidth="{Binding Width, ElementName=mainWindow, Converter={StaticResource ScaledValueConverter}, ConverterParameter='0.25'}"
|
|
Focusable="False" Cursor="Hand"
|
|
Background="#E5EEEEEE" BorderBrush="#E59A9A9A"
|
|
WindowChrome.IsHitTestVisibleInChrome="True" Foreground="#FF404040">
|
|
<Button.ContentTemplate>
|
|
<DataTemplate>
|
|
<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding}" />
|
|
</DataTemplate>
|
|
</Button.ContentTemplate>
|
|
</Button>
|
|
<Border DockPanel.Dock="Left" x:Name="buttonPin" Style="{StaticResource CaptionButtonStyle}">
|
|
<fa:ImageAwesome Icon="ThumbTack" Foreground="{StaticResource CaptionButtonIconForeground}" />
|
|
</Border>
|
|
<Border x:Name="buttonShare" Style="{StaticResource CaptionButtonStyle}" DockPanel.Dock="Left">
|
|
<fa:ImageAwesome Icon="ShareAlt" Foreground="{StaticResource CaptionButtonIconForeground}" />
|
|
</Border>
|
|
<Grid x:Name="titleArea" Background="Transparent">
|
|
<TextBlock Text="{Binding ContextObject.Title, ElementName=mainWindow}" FontSize="12"
|
|
HorizontalAlignment="Left" TextTrimming="CharacterEllipsis"
|
|
VerticalAlignment="Center" Margin="5,0" />
|
|
</Grid>
|
|
</DockPanel>
|
|
</Grid>
|
|
<DockPanel x:Name="containerPanel" Background="#FFF8F8FB" ZIndex="80">
|
|
<Grid DockPanel.Dock="Top" Height="{StaticResource MainWindowCaptionHeight}"
|
|
Visibility="{Binding ContextObject.TitlebarOverlap, ElementName=mainWindow, Converter={StaticResource BooleanToVisibilityCollapsedConverter}}" />
|
|
<ContentControl x:Name="container"
|
|
Content="{Binding ContextObject.ViewerContent, ElementName=mainWindow}" />
|
|
</DockPanel>
|
|
</Grid>
|
|
<Grid x:Name="busyIndicatorLayer" Background="{StaticResource MainWindowBackground}" ZIndex="200">
|
|
<Grid.Style>
|
|
<Style TargetType="{x:Type Grid}">
|
|
<Setter Property="Visibility" Value="Collapsed" />
|
|
<Style.Triggers>
|
|
<DataTrigger
|
|
Binding="{Binding ContextObject.IsBusy, ElementName=mainWindow}"
|
|
Value="True">
|
|
<Setter Property="Visibility" Value="Visible" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Grid.Style>
|
|
<busyDecorator:BusyDecorator x:Name="busyDecorator"
|
|
IsBusyIndicatorShowing="True"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Center" />
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
</Window> |