* UINavMenu: 尝试减少刷新闪烁
This commit is contained in:
parent
9eaf41849f
commit
b78aed01f7
@ -97,6 +97,15 @@ namespace Sunny.UI
|
||||
|
||||
selectedForeColor = UIStyles.Blue.NavMenuMenuSelectedColor;
|
||||
selectedHighColor = UIStyles.Blue.NavMenuMenuSelectedColor;
|
||||
|
||||
_timer = new System.Windows.Forms.Timer();
|
||||
_timer.Tick += Timer_Tick;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
_timer.Dispose();
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
private int scrollBarWidth = 0;
|
||||
@ -637,6 +646,13 @@ namespace Sunny.UI
|
||||
}
|
||||
|
||||
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
|
||||
{
|
||||
if (_resizing)
|
||||
{
|
||||
return;
|
||||
//e.DrawDefault = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (BorderStyle != BorderStyle.None)
|
||||
{
|
||||
@ -779,6 +795,7 @@ namespace Sunny.UI
|
||||
|
||||
base.OnDrawNode(e);
|
||||
}
|
||||
}
|
||||
|
||||
private Color tipsColor = Color.Red;
|
||||
|
||||
@ -1220,5 +1237,38 @@ namespace Sunny.UI
|
||||
public delegate void OnNodeRightSymbolClick(object sender, TreeNode node, int index, int symbol);
|
||||
|
||||
public event OnNodeRightSymbolClick NodeRightSymbolClick;
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
//_resizing = true;
|
||||
//_previousClientSize = ClientSize;
|
||||
// 启动计时器
|
||||
//_timer.Start();
|
||||
}
|
||||
|
||||
private bool _resizing;
|
||||
private System.Windows.Forms.Timer _timer;
|
||||
private Size _previousClientSize;
|
||||
|
||||
private void Timer_Tick(object sender, EventArgs e)
|
||||
{
|
||||
// 检查控件的大小是否与前一次检查时相同
|
||||
if (ClientSize == _previousClientSize)
|
||||
{
|
||||
// 控件已停止调整大小
|
||||
_resizing = false;
|
||||
|
||||
// 清除计时器
|
||||
_timer.Stop();
|
||||
|
||||
// 刷新 TreeView
|
||||
Invalidate();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 更新前一次检查时的大小
|
||||
_previousClientSize = ClientSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user