我想使用畫布在WPF中創建一個Paint應用程序。我想在繪圖時增加我的形狀的厚度,所以我嘗試增加StrokeThickness。如何增加WPF中的形狀的厚度
這是我希望它是:
而這就是我得到:
正如你所看到的輪廓僅邊界內延伸。我怎樣才能讓它在兩側延伸?
這裏是我的代碼:
在MouseDown事件:
Rectangle rect = new Rectangle();
rect.Stroke = _color;
rect.StrokeThickness = _size;
Canvas.SetLeft(rect, _startPoint.X);
Canvas.SetTop(rect, _startPoint.Y);
cv_PaintBoard.Children.Add(rect);
isDrawing = true;
在MouseMove事件:
if (isDrawing == true && e.LeftButton == MouseButtonState.Pressed)
{
Canvas canvas = (Canvas)sender;
Rectangle rect = canvas.Children.OfType<Rectangle>().LastOrDefault();
if (rect != null)
{
Point endPoint = e.GetPosition((IInputElement)sender);
Point startPoint = new Point(
Math.Min(endPoint.X, _startPoint.X),
Math.Min(endPoint.Y, _startPoint.Y)
);
rect.Width = Math.Max(endPoint.X, _startPoint.X) - startPoint.X;
rect.Height = Math.Max(endPoint.Y, _startPoint.Y) - startPoint.Y;
Canvas.SetLeft(rect, startPoint.X);
Canvas.SetTop(rect, startPoint.Y);
}
}
怎麼樣顯示相關代碼的人,而不是讓他們猜 –
看起來像你可以嘗試創建一些輔助的方法來更新'StrokeThickness'在不僅「StrokeThickness」被更新,而且「寬度」和「高度」也被更新。 – Hopeless