0
我正在嘗試創建一個自定義Shape
,我首先創建了一個Rectangle
。RectangleGeometry - 剪切矩形
這裏是我的代碼:
public class CustomRectangle : Shape
{
protected override Geometry DefiningGeometry
{
get
{
return new RectangleGeometry(new Rect(new Point(10, 10), new Size(100, 50)));
}
}
}
當我使用100
和50
的Width
和分別爲Rectangle
的Height
,在Rectangle
正在繪製完美。
但是,如果我增加要麼Width
和/或Height
對我們說200
和100
,拉制形狀不是Rectangle
但只包含兩行(形狀看起來像它畫一個Rectangle
只有它被切斷 - 好像我有一些可以繪製形狀的邊界)。
我在Canvas
繪製Shape
,這裏是該代碼:
private void MouseClick(object sender, MouseButtonEventArgs mouseButtonEventArgs)
{
if (mouseButtonEventArgs.LeftButton != MouseButtonState.Pressed)
{
m_downClick = new Point(-1, -1);
return;
}
m_downClick = mouseButtonEventArgs.GetPosition(sender as Canvas);
var newRect = new CustomRectangle {Width = 200, Height = 100, Stroke = Brushes.Black, Location = m_downClick};
Canvas.SetTop(newRect , m_downClick.Y);
Canvas.SetLeft(newRect , m_downClick.X);
(sender as Canvas).Children.Add(newRect);
}
什麼可以成爲什麼原因呢?
請注意,類形狀已具有寬度和高度屬性。只需使用它們,即'return new RectangleGeometry(new Rect(0,0,Width,Height));' – Clemens
@Clemens - 事實上,我更新了我的答案。無論如何,我或多或少地認爲Shape將需要自定義屬性 –