mirror of
https://github.com/QL-Win/QuickLook.git
synced 2025-09-13 11:09:06 +00:00
fix a bug where the zoom level of HTML viewer is always 200%
This commit is contained in:
63
QuickLook.Plugin/QuickLook.Plugin.HtmlViewer/DpiHelpers.cs
Normal file
63
QuickLook.Plugin/QuickLook.Plugin.HtmlViewer/DpiHelpers.cs
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
// Copyright <20> 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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace QuickLook.Plugin.HtmlViewer
|
||||||
|
{
|
||||||
|
internal static class DpiHelper
|
||||||
|
{
|
||||||
|
public enum DeviceCap
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Logical pixels inch in X
|
||||||
|
/// </summary>
|
||||||
|
LOGPIXELSX = 88,
|
||||||
|
/// <summary>
|
||||||
|
/// Logical pixels inch in Y
|
||||||
|
/// </summary>
|
||||||
|
LOGPIXELSY = 90
|
||||||
|
}
|
||||||
|
|
||||||
|
public const float DEFAULT_DPI = 96;
|
||||||
|
|
||||||
|
public static Dpi GetCurrentDpi()
|
||||||
|
{
|
||||||
|
var g = Graphics.FromHwnd(IntPtr.Zero);
|
||||||
|
var desktop = g.GetHdc();
|
||||||
|
|
||||||
|
var dpi = new Dpi
|
||||||
|
{
|
||||||
|
HorizontalDpi = GetDeviceCaps(desktop, (int) DeviceCap.LOGPIXELSX),
|
||||||
|
VerticalDpi = GetDeviceCaps(desktop, (int) DeviceCap.LOGPIXELSY)
|
||||||
|
};
|
||||||
|
|
||||||
|
return dpi;
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
|
||||||
|
public static extern int GetDeviceCaps(IntPtr hDC, int nIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class Dpi
|
||||||
|
{
|
||||||
|
public float HorizontalDpi { get; set; }
|
||||||
|
public float VerticalDpi { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@@ -56,6 +56,7 @@
|
|||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xaml">
|
<Reference Include="System.Xaml">
|
||||||
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
<RequiredTargetFramework>4.0</RequiredTargetFramework>
|
||||||
@@ -65,6 +66,7 @@
|
|||||||
<Reference Include="PresentationFramework" />
|
<Reference Include="PresentationFramework" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="DpiHelpers.cs" />
|
||||||
<Compile Include="WpfBrowserWrapper.cs" />
|
<Compile Include="WpfBrowserWrapper.cs" />
|
||||||
<Page Include="WebpagePanel.xaml">
|
<Page Include="WebpagePanel.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
|
@@ -7,6 +7,6 @@
|
|||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="300" d:DesignWidth="300">
|
d:DesignHeight="300" d:DesignWidth="300">
|
||||||
<Grid>
|
<Grid>
|
||||||
<local:WpfWebBrowserWrapper x:Name="browser" Zoom="200" />
|
<local:WpfWebBrowserWrapper x:Name="browser" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
@@ -31,6 +31,8 @@ namespace QuickLook.Plugin.HtmlViewer
|
|||||||
public WebpagePanel()
|
public WebpagePanel()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
browser.Zoom = (int) (100 * DpiHelper.GetCurrentDpi().HorizontalDpi / DpiHelper.DEFAULT_DPI);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
Reference in New Issue
Block a user