📅  最后修改于: 2020-11-18 09:59:51             🧑  作者: Mango
在WPF中,交互显示视图如何与该视图中的控件交互。最常见的交互有两种类型-
行为是通过Expression Blend 3引入的,该行为可以将某些功能封装到可重用的组件中。若要添加其他行为,可以将这些组件附加到控件。行为为轻松设计复杂的用户交互提供了更大的灵活性。
让我们看一个简单的示例,其中ControlStoryBoardAction行为附加到控件。
创建一个新的WPF项目,名称为WPFBehavior。
以下XAML代码创建一个椭圆和两个按钮来控制椭圆的移动。
当您编译并执行上述代码时,它将产生以下窗口,其中包含一个椭圆和两个按钮。
当您按下播放按钮时,它将开始从左向右移动,然后返回其原始位置。停止按钮将停止椭圆运动。
在用户界面上进行拖放可以大大提高应用程序的效率和生产率。由于人们认为很难实现拖放功能,因此很少有使用拖放功能的应用程序。在某种程度上,很难处理拖放功能,但是在WPF中,您可以轻松地处理它。
让我们举一个简单的例子来了解它是如何工作的。我们将创建一个应用程序,您可以在其中将颜色从一个矩形拖放到另一个矩形。
创建一个名为WPFDragAndDrop的新WPF项目。
将五个矩形拖到设计窗口中,并设置属性,如以下XAML文件所示。
第一个矩形是目标矩形,因此用户可以将颜色从另一个矩形拖到目标矩形。
下面给出了C#中用于拖放的事件实现。
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
namespace WPFDragAndDrop {
///
/// Interaction logic for MainWindow.xaml
///
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void Rect_MLButtonDown(object sender, MouseButtonEventArgs e) {
Rectangle rc = sender as Rectangle;
DataObject data = new DataObject(rc.Fill);
DragDrop.DoDragDrop(rc, data,DragDropEffects.Move);
}
private void Target_Drop(object sender, DragEventArgs e) {
SolidColorBrush scb = (SolidColorBrush)e.Data.GetData(typeof(SolidColorBrush));
Target.Fill = scb;
}
}
}
当您运行应用程序时,它将产生以下窗口。
如果从右侧的矩形中拖动颜色并将其放在左侧的大矩形中,则会立即看到其效果。
让我们从右侧拖动第四个。
您可以看到目标矩形的颜色已更改。我们建议您执行上述代码并尝试其功能。