gpt4 book ai didi

c# - 用户绘制的控件 : the MSN chat window

转载 作者:太空狗 更新时间:2023-10-29 23:42:25 25 4
gpt4 key购买 nike

我想知道著名的 MSN 聊天客户端对话窗口!我敢肯定肯定有很多不同的方面,但我想专注于那些小的滑动 Pane 。例如,显示对话中人物照片的位置。当您单击折叠按钮时,图片消失,面板优雅地滑入,当您再次单击它展开时,它滑出,图片平滑地淡入。

如何在 WinForms 中自定义绘制具有类似行为的控件?

最佳答案

这应该让您了解如何为宽度设置动画。

int _collapsedWidth;
int _fullWidth;
float _speed;
float _acurateWidth;

System.Diagnostics.Stopwatch _stopwatch = new Stopwatch ();

int _animationDirection;

AnimatedControl (){

Application.Idle += ApplicationIdle;
}

void Expand (){
_animationDirection = 1;
_stopwatch.Start();
}

void ApplicationIdle (object sender, EventArgs e){
if (_animation.Direction == 0)
return;

float delta = _stopwatch.Elapsed.TotalMilliseconds * _speed;

_acurateWidth += delta;

if (_acurateWidth < _collapsedWidth)
{
_animationDirection = 0;
_acurateWidth = _collapsedWidth;
_stopwatch.Stop();
}
else if (_acurateWidth > _fullWidth)
{
_animationDirection = 0;
_acurateWidth = _fullWidth;
_stopwatch.Stop();
}

_stopwatch.Reset();

this.Width = (int)System.Math.Round(_acurateWidth , MidpointRounding.AwayFromZero);
this.Invalidate (); // May not need this

}

对于图片,类似的东西但使用 translucent images ,您可能还想为它们创建一个具有透明背景色的新控件,具体取决于您想要绘制内容的方式。

然后您可以将此控件放入 LayoutPanel 控件之一,以在窗体中四处移动其他控件以匹配宽度。

关于c# - 用户绘制的控件 : the MSN chat window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com