* UINavMenu: 尝试减少刷新闪烁
This commit is contained in:
parent
9eaf41849f
commit
b78aed01f7
@ -97,6 +97,15 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
selectedForeColor = UIStyles.Blue.NavMenuMenuSelectedColor;
|
selectedForeColor = UIStyles.Blue.NavMenuMenuSelectedColor;
|
||||||
selectedHighColor = 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;
|
private int scrollBarWidth = 0;
|
||||||
@ -637,6 +646,13 @@ namespace Sunny.UI
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
|
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
|
||||||
|
{
|
||||||
|
if (_resizing)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
//e.DrawDefault = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (BorderStyle != BorderStyle.None)
|
if (BorderStyle != BorderStyle.None)
|
||||||
{
|
{
|
||||||
@ -779,6 +795,7 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
base.OnDrawNode(e);
|
base.OnDrawNode(e);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Color tipsColor = Color.Red;
|
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 delegate void OnNodeRightSymbolClick(object sender, TreeNode node, int index, int symbol);
|
||||||
|
|
||||||
public event OnNodeRightSymbolClick NodeRightSymbolClick;
|
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