WinForm如何实现浮动效果%>_<%

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinForm如何实现浮动效果%>_<%相关的知识,希望对你有一定的参考价值。

请问如何用WinForm把图片弄成浮动效果 当这张图片被选中的时候 这张图片比别的图片大
而且会自动排到选中的图片位置
//如图片这样的效果

大神请告诉代码如何实现
//要用到什么样的
控件和属性

参考技术A 这个涉及到3D、倒影、变换、动画等效果,用WinForm应该很困难,用WPF或是Silverlight比较合适一些 参考技术B 你放一个图片框,做N张这样的图片,当鼠标在图片框内移动时根据当前鼠标的位置实时切换图片不就OK啦。本回答被提问者采纳

wpf中如何实现控件的拖拽

想实现这样一个常用功能:在ListBox的一个Item上点住左键,然后拖拽到另外一个控件(如ListView中),松开左键,数据已经拖拽过来。
步骤如下:
1. 设置ListBox 的AllowDrop属性为True
2. 在ListBoxItem 的Style中设置EventSetter

<Style x:Key="MyListBoxItemStyle" TargetType="x:Type ListBoxItem">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListBoxItem_PreviewMouseLeftButtonDown"/>
</Style>

3. 实现ListBoxItem_PreviewMouseLeftButtonDown

private void ListBoxItem_PreviewMouseLeftButtonDown(object sender, MouseEventArgs e)

ListBoxItem item = (sender as Control) as ListBoxItem;
if (item != null )

DataObject dataObject = new DataObject(item.DataContext);
DragDrop.DoDragDrop(item, dataObject, DragDropEffects.Copy);//启动拖拽



4. 在目的控件也将AllowDrop的属性设为True,然后实现目的控件的Drop Event

private void ***Control_Drop(object sender, DragEventArgs e)

// 注册Drop事件用来接收数据。
IDataObject data = new DataObject();
data = e.Data;
object obj = data.GetData(typeof(YourDataContext));

if (obj != null)

Do your job

参考技术A Microsoft.Expression.Interactions.dll 你上网下载这个
实例化一个 MouseDragElementBehavior对象
MouseDragElementBehavior.Attach(你要拖动的控件)
然后就可以了
还有一些DragFinished 之类的事件 你可以自己玩玩,挺好用的
参考技术B DragDrop.DoDragDrop() 参考技术C 响应控件的MouseDown, DragEnter, DragLeave, DragOver, Drop事件即可。

以上是关于WinForm如何实现浮动效果%>_<%的主要内容,如果未能解决你的问题,请参考以下文章

我想用C#做个WinForm界面,类似迅雷7那样的按钮效果,该如何实现,我不要求那种动画效果

winform中如何判断控件的内容已经修改?

C# WinForm 自定义控件如何实现动态添加子控件

c#winform如何实现中英文转换

C# winform 控件拖动问题

c# winform 如何做浮动窗口