Commit b6d55a05 authored by 段廷瑞's avatar 段廷瑞

pref: 主页右上角按钮优化

parent 8afe8a66
This diff is collapsed.
......@@ -95,6 +95,13 @@ namespace Tools
// this.webBrowser1.Url = new Uri("http://www.feteto.cn/#/");
// this.webBrowser1.Show();
//}));
//窗口控制按钮悬停效果
this.btnMinimized.MouseEnter += BtnWinCtrl_MouseEnter;
this.btnMinimized.MouseLeave += BtnWinCtrl_MouseLeave;
this.btnMaximized.MouseEnter += BtnWinCtrl_MouseEnter;
this.btnMaximized.MouseLeave += BtnWinCtrl_MouseLeave;
this.btnClosed.MouseEnter += BtnClosed_MouseEnter;
this.btnClosed.MouseLeave += BtnClosed_MouseLeave;
//版本号处理
Task.Run(() => this.AsyncUI(() => {
var dt = this._db.GetDataTable($@"
......@@ -145,14 +152,118 @@ namespace Tools
{
this.SetWinMaximized();
}
this.btnMaximized.Invalidate();
//刷新Tab显示
this.RefreshTab();
}
/// <summary>
/// 自定义绘制最小化图标:底部横线
/// </summary>
private void btnMinimized_Paint(object sender, PaintEventArgs e)
{
var btn = sender as Button;
var g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
int w = btn.Width;
int h = btn.Height;
int lw = 10; // 横线宽度
int x = (w - lw) / 2;
int y = h / 2;
using (var pen = new Pen(btn.ForeColor, 1.5f))
g.DrawLine(pen, x, y, x + lw, y);
}
/// <summary>
/// 自定义绘制最大化/还原图标,像素级居中
/// </summary>
private void btnMaximized_Paint(object sender, PaintEventArgs e)
{
var btn = sender as Button;
var g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
int w = btn.Width;
int h = btn.Height;
int s = 9; // 矩形边长
int gx = 3; // 还原态前后窗口间距
using (var pen = new Pen(btn.ForeColor, 1.5f))
{
if (this.IsMaximized)
{
// 还原图标:两个重叠矩形
int bx = (w - s - gx) / 2;
int by = (h - s - gx) / 2 + 1;
g.DrawRectangle(pen, bx + gx, by - gx / 2, s, s);
using (var brush = new SolidBrush(btn.BackColor))
g.FillRectangle(brush, bx, by, s, s);
g.DrawRectangle(pen, bx, by, s, s);
}
else
{
// 最大化图标:单个矩形
int x = (w - s) / 2;
int y = (h - s) / 2;
g.DrawRectangle(pen, x, y, s, s);
}
}
}
/// <summary>
/// 自定义绘制关闭图标:X 形叉号
/// </summary>
private void btnClosed_Paint(object sender, PaintEventArgs e)
{
var btn = sender as Button;
var g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
int w = btn.Width;
int h = btn.Height;
int m = 8; // 边距
int x1 = m, y1 = m;
int x2 = w - m, y2 = h - m;
using (var pen = new Pen(btn.ForeColor, 1.6f))
{
g.DrawLine(pen, x1, y1, x2, y2);
g.DrawLine(pen, x2, y1, x1, y2);
}
}
private void btnMinimized_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
/// <summary>
/// 最小化/最大化按钮悬停效果
/// </summary>
private void BtnWinCtrl_MouseEnter(object sender, EventArgs e)
{
if (sender is Button btn)
btn.BackColor = Color.FromArgb(70, 130, 220);
}
private void BtnWinCtrl_MouseLeave(object sender, EventArgs e)
{
if (sender is Button btn)
btn.BackColor = Color.FromArgb(41, 101, 204);
}
/// <summary>
/// 关闭按钮悬停效果(红色高亮)
/// </summary>
private void BtnClosed_MouseEnter(object sender, EventArgs e)
{
this.btnClosed.BackColor = Color.FromArgb(220, 60, 60);
}
private void BtnClosed_MouseLeave(object sender, EventArgs e)
{
this.btnClosed.BackColor = Color.FromArgb(41, 101, 204);
}
/// <summary>
/// 设置窗体最大化
/// </summary>
......@@ -490,7 +601,8 @@ namespace Tools
// 使用三元运算符简化状态切换
this.splitContainer1.SplitterDistance = this.IsMenuCollapsed ? 20 : this.OriginalMenuWidth;
this.btnToggleMenu.Text = this.IsMenuCollapsed ? ">" : "<";
this.toolTip1.SetToolTip(this.btnToggleMenu, this.IsMenuCollapsed ? "展开菜单" : "折叠菜单");
// 强制刷新按钮显示
this.btnToggleMenu.PerformLayout();
this.btnToggleMenu.Refresh();
......
......@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD0
EgAAAk1TRnQBSQFMAgEBBQEAASgBAQEoAQEBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
EgAAAk1TRnQBSQFMAgEBBQEAATgBAQE4AQEBIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABgAMAAUADAAEBAQABCAYAASAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment