wpf 实现鼠标改变 rectangle 完整工程
时间: 2024-03-11 20:50:25 浏览: 80
下面是一个完整的WPF工程,实现了鼠标改变Rectangle尺寸和控制其旋转的功能。
.xaml:
```xml
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Rectangle x:Name="rect" Fill="Red" Width="100" Height="100" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<RotateTransform Angle="0"/>
</Rectangle.RenderTransform>
</Rectangle>
<Thumb x:Name="resizeThumb" Width="10" Height="10" Cursor="SizeNWSE" DragDelta="resizeThumb_DragDelta"/>
<Thumb x:Name="rotateThumb" Width="10" Height="10" Cursor="Hand" DragDelta="rotateThumb_DragDelta"/>
</Grid>
</Window>
```
MainWindow.xaml.cs:
```csharp
using System.Windows;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void resizeThumb_DragDelta(object sender, DragDeltaEventArgs e)
{
rect.Width += e.HorizontalChange;
rect.Height += e.VerticalChange;
}
private void rotateThumb_DragDelta(object sender, DragDeltaEventArgs e)
{
RotateTransform rotateTransform = rect.RenderTransform as RotateTransform;
rotateTransform.Angle += e.HorizontalChange;
}
}
}
```
在代码中,我们使用了一个Grid作为容器,放置一个Rectangle和两个Thumb控件。其中resizeThumb控件用于改变Rectangle的尺寸,rotateThumb控件用于控制旋转。
然后,在代码中实现resizeThumb_DragDelta和rotateThumb_DragDelta两个事件处理函数,分别实现改变尺寸和旋转操作。
运行工程,可以看到一个红色的矩形,可以使用resizeThumb控件改变矩形的尺寸,使用rotateThumb控件控制矩形的旋转角度。
阅读全文