mirror of
https://github.com/QL-Win/QuickLook.git
synced 2026-03-01 01:00:27 +08:00
218 lines
13 KiB
XML
218 lines
13 KiB
XML
<Window x:Class="QuickLook.ViewerWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:busyDecorator="clr-namespace:QuickLook.Controls.BusyDecorator"
|
|
xmlns:controls="clr-namespace:QuickLook.Controls"
|
|
xmlns:converters="clr-namespace:QuickLook.Converters"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:glassLayer="clr-namespace:QuickLook.Controls.GlassLayer"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
x:Name="mainWindow"
|
|
Title="{Binding ElementName=titleAreaText, Path=Text}"
|
|
MinWidth="400"
|
|
MinHeight="200"
|
|
d:DesignHeight="700"
|
|
d:DesignWidth="624"
|
|
Background="{DynamicResource MainWindowBackground}"
|
|
BorderBrush="{DynamicResource CaptionBackground}"
|
|
Focusable="False"
|
|
Foreground="{DynamicResource WindowTextForeground}"
|
|
ResizeMode="CanResize"
|
|
ShowActivated="False"
|
|
ShowInTaskbar="False"
|
|
UseLayoutRounding="True"
|
|
mc:Ignorable="d">
|
|
<Window.Resources>
|
|
<ResourceDictionary>
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="/QuickLook.Common;component/Styles/MainWindowStyles.xaml" />
|
|
</ResourceDictionary.MergedDictionaries>
|
|
<converters:WindowStateMaximizedToThicknessConverter x:Key="WindowStateMaximizedToThicknessConverter" />
|
|
<converters:WindowStateNormalToThicknessConverter x:Key="WindowStateNormalToThicknessConverter" />
|
|
<converters:BooleanToVisibilityCollapsedConverter x:Key="BooleanToVisibilityCollapsedConverter" />
|
|
<converters:BooleanToVisibilityHiddenConverter x:Key="BooleanToVisibilityHiddenConverter" />
|
|
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
|
|
</ResourceDictionary>
|
|
</Window.Resources>
|
|
<WindowChrome.WindowChrome>
|
|
<WindowChrome CaptionHeight="{StaticResource MainWindowCaptionHeight}"
|
|
CornerRadius="0"
|
|
GlassFrameThickness=" 1"
|
|
ResizeBorderThickness="{StaticResource MainWindowResizeThickness}"
|
|
UseAeroCaptionButtons="False" />
|
|
</WindowChrome.WindowChrome>
|
|
<Window.Style>
|
|
<Style TargetType="Window">
|
|
<Setter Property="BorderThickness" Value="{StaticResource MainWindowShadowMarginThickness}" />
|
|
</Style>
|
|
</Window.Style>
|
|
<Grid x:Name="windowFrameContainer" Margin="{Binding ElementName=mainWindow, Path=WindowState, Converter={StaticResource WindowStateMaximizedToThicknessConverter}, ConverterParameter={StaticResource MainWindowResizeThickness}}">
|
|
<Grid x:Name="viewerRootContainer" ZIndex="190">
|
|
<Grid x:Name="windowCaptionContainer"
|
|
Height="{StaticResource MainWindowCaptionHeight}"
|
|
VerticalAlignment="Top"
|
|
ZIndex="100">
|
|
<Grid.Style>
|
|
<Style TargetType="Grid">
|
|
<Setter Property="Opacity" Value="1" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding ContextObject.TitlebarAutoHide, ElementName=mainWindow}" Value="True">
|
|
<Setter Property="Opacity" Value="0" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Grid.Style>
|
|
<Grid.Resources>
|
|
<Storyboard x:Key="ShowCaptionContainerStoryboard" Completed="AutoHideCaptionContainer">
|
|
<DoubleAnimation Storyboard.Target="{Binding Source={x:Reference windowCaptionContainer}}"
|
|
Storyboard.TargetProperty="Opacity"
|
|
To="1"
|
|
Duration="0:0:0.05" />
|
|
</Storyboard>
|
|
<Storyboard x:Key="HideCaptionContainerStoryboard">
|
|
<DoubleAnimationUsingKeyFrames Storyboard.Target="{Binding Source={x:Reference windowCaptionContainer}}" Storyboard.TargetProperty="Opacity">
|
|
<DoubleAnimationUsingKeyFrames.KeyFrames>
|
|
<LinearDoubleKeyFrame KeyTime="0:0:0" Value="1" />
|
|
<LinearDoubleKeyFrame KeyTime="0:0:1" Value="1" />
|
|
<LinearDoubleKeyFrame KeyTime="0:0:1.05" Value="0" />
|
|
</DoubleAnimationUsingKeyFrames.KeyFrames>
|
|
</DoubleAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</Grid.Resources>
|
|
<glassLayer:GlassLayer BlurredElement="{Binding ElementName=containerPanel}"
|
|
ColorOverlayVisibility="{Binding ContextObject.TitlebarColourVisibility, ElementName=mainWindow, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
GlassVisibility="{Binding ContextObject.TitlebarBlurVisibility, ElementName=mainWindow, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
NoiseVisibility="Visible"
|
|
OverlayColor="{DynamicResource CaptionBackground}" />
|
|
<DockPanel>
|
|
<Button x:Name="buttonCloseWindow"
|
|
Content=""
|
|
DockPanel.Dock="Right"
|
|
Style="{StaticResource CaptionCloseButtonStyle}" />
|
|
<Button x:Name="buttonWindowStatus"
|
|
DockPanel.Dock="Right"
|
|
Visibility="{Binding ContextObject.CanResize, ElementName=mainWindow, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<Button.Style>
|
|
<Style BasedOn="{StaticResource CaptionButtonStyle}" TargetType="Button">
|
|
<Setter Property="Content" Value="" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding WindowState, ElementName=mainWindow}" Value="Maximized">
|
|
<Setter Property="Content" Value="" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Button.Style>
|
|
</Button>
|
|
<Button x:Name="buttonShare"
|
|
Content=""
|
|
DockPanel.Dock="Right"
|
|
Style="{StaticResource CaptionButtonStyle}"
|
|
ToolTip="Share" />
|
|
<Button x:Name="buttonOpenWith"
|
|
Content=""
|
|
DockPanel.Dock="Right"
|
|
Style="{StaticResource CaptionButtonStyle}"
|
|
ToolTip="Open With" />
|
|
<Button x:Name="buttonOpen"
|
|
Content=""
|
|
DockPanel.Dock="Right"
|
|
Style="{StaticResource CaptionButtonStyle}"
|
|
ToolTip="Open with XXX" />
|
|
<!--<Button x:Name="buttonOpen" DockPanel.Dock="Right"
|
|
Style="{StaticResource CaptionTextButtonStyle}"
|
|
Visibility="{Binding ActualWidth, ElementName=windowCaptionContainer, Converter={StaticResource WidthToVisibilityCollapsedConverter}}">
|
|
<Button.Content>
|
|
<TextBlock x:Name="buttonOpenText" VerticalAlignment="Center">
|
|
Open with <Bold>AppName</Bold>
|
|
</TextBlock>
|
|
</Button.Content>
|
|
</Button>-->
|
|
<Button x:Name="buttonTop"
|
|
DockPanel.Dock="Left"
|
|
Tag="Auto"
|
|
ToolTip="Stay on Top">
|
|
<Button.Resources>
|
|
<Grid x:Key="ContentTop" TextBlock.FontFamily="{StaticResource SegoeFluent}">
|
|
<TextBlock></TextBlock>
|
|
<TextBlock HorizontalAlignment="Right"
|
|
VerticalAlignment="Bottom"
|
|
TextBlock.FontFamily="{StaticResource SegoeFluent}">
|
|
<TextBlock.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform CenterX="13" CenterY="13" ScaleX="0.25" ScaleY="0.25" />
|
|
<TranslateTransform X="0" Y="1" />
|
|
</TransformGroup>
|
|
</TextBlock.RenderTransform>
|
|

|
|
</TextBlock>
|
|
</Grid>
|
|
</Button.Resources>
|
|
<Button.Style>
|
|
<Style BasedOn="{StaticResource CaptionButtonStyle}" TargetType="Button">
|
|
<Setter Property="Content" Value="" />
|
|
<Style.Triggers>
|
|
<Trigger Property="Tag" Value="Auto">
|
|
<Setter Property="Content" Value="" />
|
|
</Trigger>
|
|
<Trigger Property="Tag" Value="Top">
|
|
<Setter Property="Content" Value="{StaticResource ContentTop}" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Button.Style>
|
|
</Button>
|
|
<Button x:Name="buttonPin"
|
|
DockPanel.Dock="Left"
|
|
Tag="Auto"
|
|
ToolTip="Prevent Closing">
|
|
<Button.Resources>
|
|
<Grid x:Key="ContentPin" TextBlock.FontFamily="{StaticResource SegoeFluent}">
|
|
<TextBlock></TextBlock>
|
|
<TextBlock></TextBlock>
|
|
</Grid>
|
|
</Button.Resources>
|
|
<Button.Style>
|
|
<Style BasedOn="{StaticResource CaptionButtonStyle}" TargetType="Button">
|
|
<Setter Property="Content" Value="" />
|
|
<Style.Triggers>
|
|
<Trigger Property="Tag" Value="Auto">
|
|
<Setter Property="Content" Value="" />
|
|
</Trigger>
|
|
<Trigger Property="Tag" Value="Pin">
|
|
<Setter Property="Content" Value="{StaticResource ContentPin}" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Button.Style>
|
|
</Button>
|
|
<Grid x:Name="titleArea" Background="Transparent">
|
|
<TextBlock x:Name="titleAreaText"
|
|
Margin="5,0"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
FontSize="12"
|
|
Text="{Binding ContextObject.Title, ElementName=mainWindow}"
|
|
TextTrimming="CharacterEllipsis" />
|
|
</Grid>
|
|
</DockPanel>
|
|
</Grid>
|
|
<DockPanel x:Name="containerPanel" ZIndex="80">
|
|
<Grid Height="{StaticResource MainWindowCaptionHeight}"
|
|
DockPanel.Dock="Top"
|
|
Visibility="{Binding ContextObject.TitlebarOverlap, ElementName=mainWindow, Converter={StaticResource BooleanToVisibilityCollapsedConverter}}" />
|
|
<ContentControl x:Name="container"
|
|
Content="{Binding ContextObject.ViewerContent, ElementName=mainWindow}"
|
|
Foreground="{DynamicResource WindowTextForeground}"
|
|
Visibility="{Binding ElementName=mainWindow, Path=ContextObject.IsBusy, Converter={StaticResource BooleanToVisibilityHiddenConverter}}" />
|
|
</DockPanel>
|
|
</Grid>
|
|
<Grid x:Name="busyIndicatorLayer"
|
|
Visibility="{Binding ElementName=mainWindow, Path=ContextObject.IsBusy, Converter={StaticResource BooleanToVisibilityConverter}}"
|
|
ZIndex="200">
|
|
<busyDecorator:BusyDecorator x:Name="busyDecorator"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
IsBusyIndicatorShowing="{Binding ElementName=mainWindow, Path=ContextObject.IsBusy}" />
|
|
</Grid>
|
|
</Grid>
|
|
</Window> |