From f8d24aa1913c871a6731ca37c66f084bf97c28fd Mon Sep 17 00:00:00 2001 From: Paddy Xu Date: Fri, 17 Nov 2017 20:08:37 +0200 Subject: [PATCH] add 1px border for keeping resizing --- ...BooleanToResizeBorderThicknessConverter.cs | 21 ++++++---- .../BooleanToResizeModeConverter.cs | 42 ------------------- .../WindowStateToThicknessConverter.cs | 42 ------------------- QuickLook/QuickLook.csproj | 2 - QuickLook/Styles/MainWindowStyles.xaml | 2 + QuickLook/ViewerWindow.xaml | 24 +++++++---- QuickLook/ViewerWindow.xaml.cs | 3 +- 7 files changed, 35 insertions(+), 101 deletions(-) delete mode 100644 QuickLook/Converters/BooleanToResizeModeConverter.cs delete mode 100644 QuickLook/Converters/WindowStateToThicknessConverter.cs diff --git a/QuickLook/Converters/BooleanToResizeBorderThicknessConverter.cs b/QuickLook/Converters/BooleanToResizeBorderThicknessConverter.cs index bc8a2f0..aa93159 100644 --- a/QuickLook/Converters/BooleanToResizeBorderThicknessConverter.cs +++ b/QuickLook/Converters/BooleanToResizeBorderThicknessConverter.cs @@ -22,19 +22,26 @@ using System.Windows.Data; namespace QuickLook.Converters { - public sealed class BooleanToResizeBorderThicknessConverter : DependencyObject, IValueConverter + public sealed class BooleanAndWindowStateToThicknessConverter : DependencyObject, IMultiValueConverter { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { - if (value == null) - return 0; + var zero = new Thickness(); + var def = parameter as Thickness? ?? new Thickness(); - var v = (bool) value; + if (values == null || values.Length != 2) + return zero; - return v ? 6 : 0; + var canResize = values[0] as bool? ?? false; + var state = values[1] as WindowState? ?? WindowState.Normal; + + if (!canResize) + return zero; + + return state == WindowState.Maximized ? zero : def; } - object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } diff --git a/QuickLook/Converters/BooleanToResizeModeConverter.cs b/QuickLook/Converters/BooleanToResizeModeConverter.cs deleted file mode 100644 index d8ba14b..0000000 --- a/QuickLook/Converters/BooleanToResizeModeConverter.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright © 2017 Paddy Xu -// -// This file is part of QuickLook program. -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -using System; -using System.Globalization; -using System.Windows; -using System.Windows.Data; - -namespace QuickLook.Converters -{ - public sealed class BooleanToResizeModeConverter : DependencyObject, IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value == null) - return ResizeMode.CanResize; - - var v = (bool) value; - - return v ? ResizeMode.CanResize : ResizeMode.NoResize; - } - - object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} \ No newline at end of file diff --git a/QuickLook/Converters/WindowStateToThicknessConverter.cs b/QuickLook/Converters/WindowStateToThicknessConverter.cs deleted file mode 100644 index f964a8d..0000000 --- a/QuickLook/Converters/WindowStateToThicknessConverter.cs +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright © 2017 Paddy Xu -// -// This file is part of QuickLook program. -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -using System; -using System.Globalization; -using System.Windows; -using System.Windows.Data; - -namespace QuickLook.Converters -{ - public sealed class WindowStateToThicknessConverter : DependencyObject, IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - var def = parameter as Thickness? ?? new Thickness(); - - if (value == null) - return def; - - return (WindowState) value == WindowState.Maximized ? new Thickness(0) : def; - } - - object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} \ No newline at end of file diff --git a/QuickLook/QuickLook.csproj b/QuickLook/QuickLook.csproj index 3a1f5fb..645a868 100644 --- a/QuickLook/QuickLook.csproj +++ b/QuickLook/QuickLook.csproj @@ -118,8 +118,6 @@ - - diff --git a/QuickLook/Styles/MainWindowStyles.xaml b/QuickLook/Styles/MainWindowStyles.xaml index b4578c2..98eae58 100644 --- a/QuickLook/Styles/MainWindowStyles.xaml +++ b/QuickLook/Styles/MainWindowStyles.xaml @@ -1,6 +1,8 @@  + 1 + 6 32 Gray diff --git a/QuickLook/ViewerWindow.xaml b/QuickLook/ViewerWindow.xaml index 528419d..d39120b 100644 --- a/QuickLook/ViewerWindow.xaml +++ b/QuickLook/ViewerWindow.xaml @@ -13,31 +13,41 @@ MinWidth="400" MinHeight="200" WindowStartupLocation="CenterScreen" Focusable="False" WindowStyle="None" - Background="Transparent" + Background="{DynamicResource CaptionBackground}" ShowActivated="False" ShowInTaskbar="False"> - - - + + UseAeroCaptionButtons="False"> + + + + + + + - + + + + + + +