diff --git a/.vs/quick-picture-viewer/v16/.suo b/.vs/quick-picture-viewer/v16/.suo
index 08929383..c4dbfbf1 100644
Binary files a/.vs/quick-picture-viewer/v16/.suo and b/.vs/quick-picture-viewer/v16/.suo differ
diff --git a/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide b/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide
index e6843c68..c159c843 100644
Binary files a/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide and b/.vs/quick-picture-viewer/v16/Server/sqlite3/storage.ide differ
diff --git a/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj b/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj
index 397aa238..16acf856 100644
--- a/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj
+++ b/QuickPictureViewer-Setup/QuickPictureViewer-Setup.vdproj
@@ -64,7 +64,7 @@
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_602081345A8B570EE42EFE35A1D60858"
+ "OwnerKey" = "8:_9E165066DD6307D67C7B835ACD3F2087"
"MsmSig" = "8:_UNDEFINED"
}
"Entry"
@@ -76,7 +76,7 @@
"Entry"
{
"MsmKey" = "8:_UNDEFINED"
- "OwnerKey" = "8:_9E165066DD6307D67C7B835ACD3F2087"
+ "OwnerKey" = "8:_602081345A8B570EE42EFE35A1D60858"
"MsmSig" = "8:_UNDEFINED"
}
}
@@ -373,15 +373,15 @@
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:Quick Picture Viewer"
- "ProductCode" = "8:{B3810BBD-C0B6-4EDE-A5D1-51D5475AE8B9}"
- "PackageCode" = "8:{E00F1FBA-67B4-4B17-8A56-5BE69C24CCBB}"
+ "ProductCode" = "8:{B2FA8817-26BA-4186-8202-EBD9C5CDAA99}"
+ "PackageCode" = "8:{4BE7925D-0139-4943-8C39-4527037F1F29}"
"UpgradeCode" = "8:{D9871B4D-DF1B-418F-A7BF-D5F44A9FCFCE}"
"AspNetVersion" = "8:2.0.50727.0"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:FALSE"
- "ProductVersion" = "8:1.9.3"
+ "ProductVersion" = "8:1.9.4"
"Manufacturer" = "8:Module Art"
"ARPHELPTELEPHONE" = "8:"
"ARPHELPLINK" = "8:"
diff --git a/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi b/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi
index 5cf4fcaa..c4abd977 100644
Binary files a/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi and b/QuickPictureViewer-Setup/Release/QuickPictureViewer-Setup.msi differ
diff --git a/README.md b/README.md
index 0ddaea99..1d06c194 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@
Install
- Windows 7, 8.1, 10 | Size: 1.1 MB | v1.9.3 | Download
+ Windows 7, 8.1, 10 | Size: 1.1 MB | v1.9.4 | Download
Uses .Net 4.7.2
@@ -39,8 +39,6 @@
Additional
- How to enable dark title bars with custom accent color in Windows 10:
-
How to uninstall built-in photos app in Windows 10:
diff --git a/docs/darkmode.png b/docs/darkmode.png
deleted file mode 100644
index cf48973d..00000000
Binary files a/docs/darkmode.png and /dev/null differ
diff --git a/quick-picture-viewer/AboutForm.cs b/quick-picture-viewer/AboutForm.cs
index 9dd48053..6450fa7f 100644
--- a/quick-picture-viewer/AboutForm.cs
+++ b/quick-picture-viewer/AboutForm.cs
@@ -16,6 +16,8 @@ public AboutForm()
if (ThemeManager.isDarkTheme())
{
+ ThemeManager.enableDarkTitlebar(this.Handle);
+
this.BackColor = ThemeManager.BackColorDark;
this.ForeColor = Color.White;
diff --git a/quick-picture-viewer/InfoForm.cs b/quick-picture-viewer/InfoForm.cs
index ffc6bb88..3166262a 100644
--- a/quick-picture-viewer/InfoForm.cs
+++ b/quick-picture-viewer/InfoForm.cs
@@ -15,6 +15,8 @@ public InfoForm(Bitmap bitmap, string directoryName, string fileName)
if (ThemeManager.isDarkTheme())
{
+ ThemeManager.enableDarkTitlebar(this.Handle);
+
this.BackColor = ThemeManager.BackColorDark;
this.ForeColor = Color.White;
diff --git a/quick-picture-viewer/MainForm.Designer.cs b/quick-picture-viewer/MainForm.Designer.cs
index 754b32ef..517870ac 100644
--- a/quick-picture-viewer/MainForm.Designer.cs
+++ b/quick-picture-viewer/MainForm.Designer.cs
@@ -95,7 +95,7 @@ private void InitializeComponent()
//
// toolStrip1
//
- this.toolStrip1.BackColor = System.Drawing.Color.Transparent;
+ this.toolStrip1.BackColor = System.Drawing.Color.White;
this.toolStrip1.CanOverflow = false;
this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -207,9 +207,9 @@ private void InitializeComponent()
// toolStripSeparator4
//
this.toolStripSeparator4.AutoSize = false;
- this.toolStripSeparator4.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+ this.toolStripSeparator4.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.toolStripSeparator4.Name = "toolStripSeparator4";
- this.toolStripSeparator4.Size = new System.Drawing.Size(6, 16);
+ this.toolStripSeparator4.Size = new System.Drawing.Size(2, 16);
//
// prevButton
//
@@ -254,9 +254,9 @@ private void InitializeComponent()
// toolStripSeparator1
//
this.toolStripSeparator1.AutoSize = false;
- this.toolStripSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+ this.toolStripSeparator1.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.toolStripSeparator1.Name = "toolStripSeparator1";
- this.toolStripSeparator1.Size = new System.Drawing.Size(6, 16);
+ this.toolStripSeparator1.Size = new System.Drawing.Size(2, 16);
//
// autoZoomButton
//
@@ -337,9 +337,9 @@ private void InitializeComponent()
// toolStripSeparator2
//
this.toolStripSeparator2.AutoSize = false;
- this.toolStripSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+ this.toolStripSeparator2.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.toolStripSeparator2.Name = "toolStripSeparator2";
- this.toolStripSeparator2.Size = new System.Drawing.Size(6, 16);
+ this.toolStripSeparator2.Size = new System.Drawing.Size(2, 16);
//
// rotateLeftButton
//
@@ -398,7 +398,7 @@ private void InitializeComponent()
this.toolStripSeparator3.AutoSize = false;
this.toolStripSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.toolStripSeparator3.Name = "toolStripSeparator3";
- this.toolStripSeparator3.Size = new System.Drawing.Size(6, 16);
+ this.toolStripSeparator3.Size = new System.Drawing.Size(2, 16);
//
// screenshotButton
//
@@ -454,9 +454,9 @@ private void InitializeComponent()
// toolStripSeparator5
//
this.toolStripSeparator5.AutoSize = false;
- this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+ this.toolStripSeparator5.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.toolStripSeparator5.Name = "toolStripSeparator5";
- this.toolStripSeparator5.Size = new System.Drawing.Size(6, 16);
+ this.toolStripSeparator5.Size = new System.Drawing.Size(2, 16);
//
// checkboardButton
//
@@ -498,9 +498,9 @@ private void InitializeComponent()
// toolStripSeparator6
//
this.toolStripSeparator6.AutoSize = false;
- this.toolStripSeparator6.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+ this.toolStripSeparator6.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0);
this.toolStripSeparator6.Name = "toolStripSeparator6";
- this.toolStripSeparator6.Size = new System.Drawing.Size(6, 16);
+ this.toolStripSeparator6.Size = new System.Drawing.Size(2, 16);
//
// setAsDesktopButton
//
@@ -573,6 +573,7 @@ private void InitializeComponent()
//
// statusStrip1
//
+ this.statusStrip1.BackColor = System.Drawing.SystemColors.ControlLight;
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.directoryLabel,
this.fileLabel,
@@ -671,7 +672,7 @@ private void InitializeComponent()
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.BackColor = System.Drawing.Color.White;
+ this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(768, 493);
this.Controls.Add(this.picturePanel);
this.Controls.Add(this.toolStrip1);
diff --git a/quick-picture-viewer/MainForm.cs b/quick-picture-viewer/MainForm.cs
index d7220df8..4ede7174 100644
--- a/quick-picture-viewer/MainForm.cs
+++ b/quick-picture-viewer/MainForm.cs
@@ -84,7 +84,7 @@ private void MainForm_Load(object sender, EventArgs e)
zoomComboBox.ComboBox.MouseWheel += new MouseEventHandler(zoomComboBox_MouseWheel);
darkMode = ThemeManager.isDarkTheme();
- if(darkMode)
+ if (darkMode)
{
applyDarkTheme();
}
@@ -1035,6 +1035,8 @@ private void externalButton_Click(object sender, EventArgs e)
private void applyDarkTheme()
{
+ ThemeManager.enableDarkTitlebar(this.Handle);
+
ThemeManager.setDarkModeToControl(picturePanel.Handle);
this.ForeColor = Color.White;
diff --git a/quick-picture-viewer/MainForm.resx b/quick-picture-viewer/MainForm.resx
index fbedcc7e..d0ebc074 100644
--- a/quick-picture-viewer/MainForm.resx
+++ b/quick-picture-viewer/MainForm.resx
@@ -338,71 +338,6 @@
477, 17
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAALJJREFUOE/Nks0JAjEQRnPwLihahgpeRQ/amj9YhAcbsABr0DbUClxR0PftBDES
- ltmTPnhkZtl8E0jC37DGKz7xgXtsopsbdqwMDdzivOycaHIdddolvtHHOnSxsNLwBuziKpI9n00PD3Gt
- IhswwjOu8IRjFEM8Yr/sjGzABqdWhgkqTLdxwUXsNURkA74ZoCbrBGKGGiJcAVUke/SQWla6aGNyjXrK
- d1SqR/2bPKRfEcILB30+ElJnYjsAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAAKVJREFUOE/Nkj0KAjEUBl9rqwiCl7ATxNJLeAqPIXgZrbyLXkAsxUJFUOfbRFhD
- 8mK5A0N+md0i1jk2eMN34gVnWOWBwzD9QZETzpuVgy7m0L7+4IwLbZTwAl+v2ihRCrRx73iH2zj+FRjj
- Po4p1cAID7jDI06xHasGerhsVmYrfKFiiipeDaRM4qio4m5AD6kfplkGeA/TPHrKT9RXcupsjZ3B7AP8
- ljJY5GqjGgAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAAGZJREFUOE/VjzEKgDAQBO9bKtio//+FmvgI3REECRa5KwIOTJFiJ5y14vwwRC9X
- GQpMcpOddAcY75IxuALlGKoDs2TM7W7ajt83jTJLbq/mCfBzksP9ckBgkaExEDgkkRAESn+B2QXamyDY
- CyfAWwAAAABJRU5ErkJggg==
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAALVJREFUOE/V0r8OwVAUgPE7+rt6EBGC6ILRw5hsJJ7EK5DgEcTWxCLETAxWEgPf
- 6bGd9LaVGHzJLz0d2t721v26AiY44oYDxsgjsSK2WKGNyue4xgZyc29TzHU0LSAr8XZCVUdTDfJa3u4o
- 6Wgq46FjfDvUdTQ1sNcxvhGWOprkQyZ+gz5ekF2QleQgT061Cx1cMcAQIZ5I9R/0cIHseea6kItb0VnG
- 5OIzmtHZF80Q6Pg/OfcGzhogaYnUQccAAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAAO5JREFUOE/N0j1qAlEYheEPiYJgq5B0UQT3YKULsNQuixAxVUSxdAsWNoFoYmGb
- 1h3YmFjZBxHSpUre84k4OOOgjeTAA3MuzJ25P3aNPGKDKdIauCQdfKCEF7zj7EkGWCDrzSyBEebIaCAu
- +vISt94OucEYr95ORC//ou4tnCK2u8dwnrDCA75QQTB3+ETL21H2a855MytDk9S8md1jjaa3o7Sh3dYX
- gqlCk+iP9GddROYbhd1jKA1oT06+rLxhCB1VMDoFnUbPW0xSmGGCpAbIfs2RGxYV3TDdtGfkoT3p46Jo
- Et35H2jdcf5FzP4AA64vkKyV2q0AAAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAANpJREFUOE/F08EKAUEAh/E9kAPClfIeijwN8TZKilxR4gWEB6EIyUU5cxDff3a3
- 1TQ4yVe/ZqY0zc4u7xdVMcUZl2CcoIKPxdHDCjUUkAvGOtboIAZnfcyQNCu/RzCqFBbompWVjr1F2qyi
- XjdQGexRNquXxtAx7ewNVBMjfxp1gp7VzrVBEUd/GnWDLtFOG4TCErj606h3J3DlPMG7O3DlvAPd6gb2
- W7DTW9ihZFZWbcyhH7nKYomWWTkKv0S9Zz1OHkpjAwd8/BLD9FENoaPeg3GAr/+Ff+R5T5lgLGc/X8aO
- AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAAOZJREFUOE/F08+qAVEAx/EpVzaEnai7sOAZ1I2nId5GKbFHySOg+x63bv6EjbK2
- IL6/Y6ZmxplrFup+69PMGdNp5pzhvKuqe1QNjLHCCUfMUEdke1TQxxZNFJBHCS38QL9/4KkbzvhGRhfc
- dN0rjQUGZhRKN8oOZV1w80+gstjgy4xiFJ5AdTB5nL7ONsEn9KSBLkg8TgN5r+afKAWtV6ADtNpxsj7B
- FNqqOFnXQKv6C/8W2tIurFEzo1A9zKGbbOWwRNeMLCUxhPZZr1OE0rENfaGRX6I/77+gR726xxH+/C/8
- V45zBz6DLrd6wgPCAAAAAElFTkSuQmCC
-
-
AAABAAUAYGAAAAEAIAColAAAVgAAAEBAAAABACAAKEIAAP6UAAAwMAAAAQAgAKglAAAm1wAAICAAAAEA
@@ -1579,6 +1514,71 @@
698, 17
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAALJJREFUOE/Nks0JAjEQRnPwLihahgpeRQ/amj9YhAcbsABr0DbUClxR0PftBDES
+ ltmTPnhkZtl8E0jC37DGKz7xgXtsopsbdqwMDdzivOycaHIdddolvtHHOnSxsNLwBuziKpI9n00PD3Gt
+ IhswwjOu8IRjFEM8Yr/sjGzABqdWhgkqTLdxwUXsNURkA74ZoCbrBGKGGiJcAVUke/SQWla6aGNyjXrK
+ d1SqR/2bPKRfEcILB30+ElJnYjsAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAAKVJREFUOE/Nkj0KAjEUBl9rqwiCl7ATxNJLeAqPIXgZrbyLXkAsxUJFUOfbRFhD
+ 8mK5A0N+md0i1jk2eMN34gVnWOWBwzD9QZETzpuVgy7m0L7+4IwLbZTwAl+v2ihRCrRx73iH2zj+FRjj
+ Po4p1cAID7jDI06xHasGerhsVmYrfKFiiipeDaRM4qio4m5AD6kfplkGeA/TPHrKT9RXcupsjZ3B7AP8
+ ljJY5GqjGgAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAAGZJREFUOE/VjzEKgDAQBO9bKtio//+FmvgI3REECRa5KwIOTJFiJ5y14vwwRC9X
+ GQpMcpOddAcY75IxuALlGKoDs2TM7W7ajt83jTJLbq/mCfBzksP9ckBgkaExEDgkkRAESn+B2QXamyDY
+ CyfAWwAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAALVJREFUOE/V0r8OwVAUgPE7+rt6EBGC6ILRw5hsJJ7EK5DgEcTWxCLETAxWEgPf
+ 6bGd9LaVGHzJLz0d2t721v26AiY44oYDxsgjsSK2WKGNyue4xgZyc29TzHU0LSAr8XZCVUdTDfJa3u4o
+ 6Wgq46FjfDvUdTQ1sNcxvhGWOprkQyZ+gz5ekF2QleQgT061Cx1cMcAQIZ5I9R/0cIHseea6kItb0VnG
+ 5OIzmtHZF80Q6Pg/OfcGzhogaYnUQccAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAAO5JREFUOE/N0j1qAlEYheEPiYJgq5B0UQT3YKULsNQuixAxVUSxdAsWNoFoYmGb
+ 1h3YmFjZBxHSpUre84k4OOOgjeTAA3MuzJ25P3aNPGKDKdIauCQdfKCEF7zj7EkGWCDrzSyBEebIaCAu
+ +vISt94OucEYr95ORC//ou4tnCK2u8dwnrDCA75QQTB3+ETL21H2a855MytDk9S8md1jjaa3o7Sh3dYX
+ gqlCk+iP9GddROYbhd1jKA1oT06+rLxhCB1VMDoFnUbPW0xSmGGCpAbIfs2RGxYV3TDdtGfkoT3p46Jo
+ Et35H2jdcf5FzP4AA64vkKyV2q0AAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAANpJREFUOE/F08EKAUEAh/E9kAPClfIeijwN8TZKilxR4gWEB6EIyUU5cxDff3a3
+ 1TQ4yVe/ZqY0zc4u7xdVMcUZl2CcoIKPxdHDCjUUkAvGOtboIAZnfcyQNCu/RzCqFBbompWVjr1F2qyi
+ XjdQGexRNquXxtAx7ewNVBMjfxp1gp7VzrVBEUd/GnWDLtFOG4TCErj606h3J3DlPMG7O3DlvAPd6gb2
+ W7DTW9ihZFZWbcyhH7nKYomWWTkKv0S9Zz1OHkpjAwd8/BLD9FENoaPeg3GAr/+Ff+R5T5lgLGc/X8aO
+ AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAAOZJREFUOE/F08+qAVEAx/EpVzaEnai7sOAZ1I2nId5GKbFHySOg+x63bv6EjbK2
+ IL6/Y6ZmxplrFup+69PMGdNp5pzhvKuqe1QNjLHCCUfMUEdke1TQxxZNFJBHCS38QL9/4KkbzvhGRhfc
+ dN0rjQUGZhRKN8oOZV1w80+gstjgy4xiFJ5AdTB5nL7ONsEn9KSBLkg8TgN5r+afKAWtV6ADtNpxsj7B
+ FNqqOFnXQKv6C/8W2tIurFEzo1A9zKGbbOWwRNeMLCUxhPZZr1OE0rENfaGRX6I/77+gR726xxH+/C/8
+ V45zBz6DLrd6wgPCAAAAAElFTkSuQmCC
+
+
834, 17
diff --git a/quick-picture-viewer/PrintForm.cs b/quick-picture-viewer/PrintForm.cs
index 6b2ac193..71aad69f 100644
--- a/quick-picture-viewer/PrintForm.cs
+++ b/quick-picture-viewer/PrintForm.cs
@@ -13,6 +13,10 @@ public PrintForm(PrintDocument pd)
if (ThemeManager.isDarkTheme())
{
+ ThemeManager.enableDarkTitlebar(this.Handle);
+
+ ThemeManager.setDarkModeToControl(printPreviewControl1.Handle);
+
this.BackColor = ThemeManager.BackColorDark;
this.ForeColor = Color.White;
diff --git a/quick-picture-viewer/Properties/AssemblyInfo.cs b/quick-picture-viewer/Properties/AssemblyInfo.cs
index e10d7f04..a8b724f5 100644
--- a/quick-picture-viewer/Properties/AssemblyInfo.cs
+++ b/quick-picture-viewer/Properties/AssemblyInfo.cs
@@ -32,6 +32,6 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.9.3")]
-[assembly: AssemblyFileVersion("1.9.3")]
+[assembly: AssemblyVersion("1.9.4")]
+[assembly: AssemblyFileVersion("1.9.4")]
[assembly: NeutralResourcesLanguage("en")]
diff --git a/quick-picture-viewer/ThemeManager.cs b/quick-picture-viewer/ThemeManager.cs
index 3268c188..f9bfb6a1 100644
--- a/quick-picture-viewer/ThemeManager.cs
+++ b/quick-picture-viewer/ThemeManager.cs
@@ -7,14 +7,82 @@ namespace quick_picture_viewer
{
class ThemeManager
{
- public static Color MainColorDark = Color.FromArgb(23, 23, 23);
- public static Color BackColorDark = Color.FromArgb(37, 37, 37);
- public static Color SecondColorDark = Color.FromArgb(56, 56, 56);
+ public static Color MainColorDark = Color.Black;
+ public static Color BackColorDark = Color.FromArgb(32, 32, 32);
+ public static Color SecondColorDark = Color.FromArgb(51, 51, 51);
public static Color AccentColorDark = Color.FromArgb(73, 169, 207);
+ private enum WindowCompositionAttribute
+ {
+ WCA_UNDEFINED = 0,
+ WCA_NCRENDERING_ENABLED = 1,
+ WCA_NCRENDERING_POLICY = 2,
+ WCA_TRANSITIONS_FORCEDISABLED = 3,
+ WCA_ALLOW_NCPAINT = 4,
+ WCA_CAPTION_BUTTON_BOUNDS = 5,
+ WCA_NONCLIENT_RTL_LAYOUT = 6,
+ WCA_FORCE_ICONIC_REPRESENTATION = 7,
+ WCA_EXTENDED_FRAME_BOUNDS = 8,
+ WCA_HAS_ICONIC_BITMAP = 9,
+ WCA_THEME_ATTRIBUTES = 10,
+ WCA_NCRENDERING_EXILED = 11,
+ WCA_NCADORNMENTINFO = 12,
+ WCA_EXCLUDED_FROM_LIVEPREVIEW = 13,
+ WCA_VIDEO_OVERLAY_ACTIVE = 14,
+ WCA_FORCE_ACTIVEWINDOW_APPEARANCE = 15,
+ WCA_DISALLOW_PEEK = 16,
+ WCA_CLOAK = 17,
+ WCA_CLOAKED = 18,
+ WCA_ACCENT_POLICY = 19,
+ WCA_FREEZE_REPRESENTATION = 20,
+ WCA_EVER_UNCLOAKED = 21,
+ WCA_VISUAL_OWNER = 22,
+ WCA_HOLOGRAPHIC = 23,
+ WCA_EXCLUDED_FROM_DDA = 24,
+ WCA_PASSIVEUPDATEMODE = 25,
+ WCA_USEDARKMODECOLORS = 26,
+ WCA_LAST = 27
+ };
+
+ private struct WindowCompositionAttribData
+ {
+ public WindowCompositionAttribute Attribute;
+ public IntPtr Data;
+ public int SizeOfData;
+ }
+
[DllImport("uxtheme.dll", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode)]
private static extern int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList);
+ [DllImport("uxtheme.dll", EntryPoint = "#133", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
+ private static extern bool AllowDarkModeForWindow(IntPtr hWnd, bool allow);
+
+ [DllImport("uxtheme.dll", EntryPoint = "#135", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
+ private static extern bool AllowDarkModeForApp(bool allow);
+
+ [DllImport("user32.dll")]
+ private static extern int SetWindowCompositionAttribute(IntPtr hwnd, ref WindowCompositionAttribData data);
+
+ public static void enableDarkTitlebar(IntPtr handle)
+ {
+ bool dark = true;
+
+ AllowDarkModeForApp(dark);
+ AllowDarkModeForWindow(handle, dark);
+
+ var sizeOfData = Marshal.SizeOf(dark);
+ var dataPtr = Marshal.AllocHGlobal(sizeOfData);
+
+ var data = new WindowCompositionAttribData
+ {
+ Attribute = WindowCompositionAttribute.WCA_USEDARKMODECOLORS,
+ Data = dataPtr,
+ SizeOfData = sizeOfData
+
+ };
+ SetWindowCompositionAttribute(handle, ref data);
+ }
+
public static void setDarkModeToControl(IntPtr handle)
{
SetWindowTheme(handle, "DarkMode_Explorer", null);
@@ -61,7 +129,8 @@ public static Color getAccentColor()
{
string root = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\DWM";
string colorcode = Registry.GetValue(root, "AccentColor", null).ToString();
- return System.Drawing.ColorTranslator.FromHtml(colorcode);
+ int colorInt = Math.Abs(Convert.ToInt32(colorcode));
+ return Color.FromArgb(colorInt);
}
else
{
diff --git a/quick-picture-viewer/UpdateForm.Designer.cs b/quick-picture-viewer/UpdateForm.Designer.cs
index 002a3cf5..66527ec7 100644
--- a/quick-picture-viewer/UpdateForm.Designer.cs
+++ b/quick-picture-viewer/UpdateForm.Designer.cs
@@ -171,11 +171,13 @@ private void InitializeComponent()
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
+ this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(320, 39);
this.Name = "UpdateForm";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Update available!";
+ this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.UpdateForm_KeyDown);
this.ResumeLayout(false);
this.PerformLayout();
diff --git a/quick-picture-viewer/UpdateForm.cs b/quick-picture-viewer/UpdateForm.cs
index 07a804eb..6cbc405c 100644
--- a/quick-picture-viewer/UpdateForm.cs
+++ b/quick-picture-viewer/UpdateForm.cs
@@ -23,6 +23,8 @@ public UpdateForm(UpdateChecker checker, string appName)
if (ThemeManager.isDarkTheme())
{
+ ThemeManager.enableDarkTitlebar(this.Handle);
+
this.BackColor = ThemeManager.BackColorDark;
this.ForeColor = Color.White;
@@ -50,5 +52,13 @@ async void boxReleaseNotes_CheckedChanged(object sender, EventArgs e)
ReleaseNotes.DocumentText = await _checker.RenderReleaseNotes();
_loadednotes = true;
}
+
+ private void UpdateForm_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Escape)
+ {
+ this.Close();
+ }
+ }
}
}
\ No newline at end of file
diff --git a/quick-picture-viewer/WallpaperForm.cs b/quick-picture-viewer/WallpaperForm.cs
index b2038ac2..a564c1eb 100644
--- a/quick-picture-viewer/WallpaperForm.cs
+++ b/quick-picture-viewer/WallpaperForm.cs
@@ -15,6 +15,8 @@ public WallpaperForm(Bitmap bmp)
if (ThemeManager.isDarkTheme())
{
+ ThemeManager.enableDarkTitlebar(this.Handle);
+
this.BackColor = ThemeManager.BackColorDark;
this.ForeColor = Color.White;
diff --git a/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe b/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe
index 72fb685f..c3f56c68 100644
Binary files a/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe and b/quick-picture-viewer/bin/Debug/quick-picture-viewer.exe differ
diff --git a/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb b/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb
index 199f5fd2..8290e47a 100644
Binary files a/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb and b/quick-picture-viewer/bin/Debug/quick-picture-viewer.pdb differ
diff --git a/quick-picture-viewer/bin/Release/quick-picture-viewer.exe b/quick-picture-viewer/bin/Release/quick-picture-viewer.exe
index b505fea2..87c56f97 100644
Binary files a/quick-picture-viewer/bin/Release/quick-picture-viewer.exe and b/quick-picture-viewer/bin/Release/quick-picture-viewer.exe differ
diff --git a/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb b/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb
index 021f3674..a6630464 100644
Binary files a/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb and b/quick-picture-viewer/bin/Release/quick-picture-viewer.pdb differ
diff --git a/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache
index 9b622753..f0bf0533 100644
Binary files a/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/quick-picture-viewer/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache
index cbdabdd7..c8a3fadf 100644
Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csproj.GenerateResource.cache differ
diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache
index 73a13a77..f0892106 100644
Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.csprojAssemblyReference.cache differ
diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe b/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe
index 72fb685f..c3f56c68 100644
Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.exe differ
diff --git a/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb b/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb
index 199f5fd2..8290e47a 100644
Binary files a/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb and b/quick-picture-viewer/obj/Debug/quick-picture-viewer.pdb differ
diff --git a/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources b/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources
index aa7f077b..008c90a2 100644
Binary files a/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources and b/quick-picture-viewer/obj/Debug/quick_picture_viewer.Properties.Resources.resources differ
diff --git a/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache b/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache
index de4ce240..d26ed106 100644
Binary files a/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache and b/quick-picture-viewer/obj/Release/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache b/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache
index dac829a1..50457319 100644
Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache and b/quick-picture-viewer/obj/Release/quick-picture-viewer.csproj.GenerateResource.cache differ
diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache b/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache
index b98e54c0..df29444c 100644
Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache and b/quick-picture-viewer/obj/Release/quick-picture-viewer.csprojAssemblyReference.cache differ
diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.exe b/quick-picture-viewer/obj/Release/quick-picture-viewer.exe
index b505fea2..87c56f97 100644
Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.exe and b/quick-picture-viewer/obj/Release/quick-picture-viewer.exe differ
diff --git a/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb b/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb
index 021f3674..a6630464 100644
Binary files a/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb and b/quick-picture-viewer/obj/Release/quick-picture-viewer.pdb differ
diff --git a/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources b/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources
index aa7f077b..008c90a2 100644
Binary files a/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources and b/quick-picture-viewer/obj/Release/quick_picture_viewer.Properties.Resources.resources differ
diff --git a/quick-picture-viewer/resources/imgs/checkboard-dark.png b/quick-picture-viewer/resources/imgs/checkboard-dark.png
index 17420ab6..845fd5c8 100644
Binary files a/quick-picture-viewer/resources/imgs/checkboard-dark.png and b/quick-picture-viewer/resources/imgs/checkboard-dark.png differ
diff --git a/quick-picture-viewer/resources/imgs/checkboard-light.png b/quick-picture-viewer/resources/imgs/checkboard-light.png
index 61a8c97c..ce7d2967 100644
Binary files a/quick-picture-viewer/resources/imgs/checkboard-light.png and b/quick-picture-viewer/resources/imgs/checkboard-light.png differ