怎么在wpf中画矩形
时间: 2023-02-14 12:29:32 浏览: 410
在 WPF 中画矩形可以使用 `Rectangle` 类来实现。
你可以在 XAML 中用如下的代码来画一个矩形:
```
<Rectangle Stroke="Black" StrokeThickness="2" Height="100" Width="200"/>
```
或者在代码中使用如下的方法:
```
Rectangle myRectangle = new Rectangle();
myRectangle.Stroke = System.Windows.Media.Brushes.Black;
myRectangle.StrokeThickness = 2;
myRectangle.Height = 100;
myRectangle.Width = 200;
```
你也可以使用 `DrawingContext` 类来绘制矩形,这样可以更灵活地控制矩形的样式,例如填充颜色、边框样式、边框圆角等。
```
public void DrawRectangle(DrawingContext dc)
{
Pen pen = new Pen(Brushes.Black, 2);
dc.DrawRectangle(Brushes.Red, pen, new Rect(10, 10, 100, 50));
}
```
希望这能帮到你。
相关问题
wpf 交互画旋转矩形
您好!要在 WPF 中交互式地绘制和旋转矩形,可以使用以下步骤:
1. 创建一个 WPF 应用程序,并添加一个 Canvas 控件。
2. 在 Canvas 控件上添加一个 Rectangle 控件,设置其 Fill 属性为透明。
3. 在 Rectangle 控件上添加一个 Thumb 控件,用于旋转矩形。设置 Thumb 控件的模板为一个圆形。
4. 在 Thumb 控件的 DragDelta 事件处理程序中,计算旋转角度并将其应用于矩形。
下面是一个简单的示例代码,演示如何在 WPF 中交互式地绘制和旋转矩形:
```xml
<Canvas>
<Rectangle Width="100" Height="50" Fill="Transparent" Stroke="Black"
Canvas.Left="100" Canvas.Top="100">
<Rectangle.RenderTransform>
<RotateTransform x:Name="rotationTransform" CenterX="50" CenterY="25"/>
</Rectangle.RenderTransform>
<Rectangle.Thumb>
<Thumb DragDelta="Thumb_DragDelta">
<Thumb.Template>
<ControlTemplate TargetType="Thumb">
<Ellipse Fill="Gray" Width="20" Height="20"/>
</ControlTemplate>
</Thumb.Template>
</Thumb>
</Rectangle.Thumb>
</Rectangle>
</Canvas>
```
```csharp
private void Thumb_DragDelta(object sender, DragDeltaEventArgs e)
{
var thumb = sender as Thumb;
var rectangle = thumb?.TemplatedParent as Rectangle;
if (rectangle != null)
{
var position = Mouse.GetPosition(rectangle);
var center = new Point(rectangle.Width / 2, rectangle.Height / 2);
var angle = Math.Atan2(position.Y - center.Y, position.X - center.X) * 180 / Math.PI;
rotationTransform.Angle += angle;
}
}
```
希望这可以帮助您实现所需的交互式画图和旋转矩形的功能。
wpf 怎么动态画矩形
您可以使用 WPF 中的 Rectangle 类来动态绘制矩形。您可以使用 Canvas 控件来放置 Rectangle 对象,并使用 Canvas.SetLeft 和 Canvas.SetTop 方法来设置矩形的位置。以下是一个简单的示例代码:
```csharp
Rectangle rect = new Rectangle();
rect.Width = 100;
rect.Height = 50;
rect.Fill = Brushes.Red;
Canvas.SetLeft(rect, 50);
Canvas.SetTop(rect, 50);
canvas.Children.Add(rect);
```
在这个示例中,我们创建了一个红色的矩形,并将其放置在 Canvas 控件中的 (50, 50) 位置。您可以根据需要更改矩形的大小和颜色,以及在 Canvas 上的位置。