我在向画布添加子画面(行)时遇到问题,当我调试代码时,我发现画布上有我添加的子画面,但我没有在画布上看到它们: 这是我的代码:
XAML:
<Grid x:Name="CanvasGrid" Grid.Column="0" Grid.Row="1">
<Canvas Background="Bisque" x:Name="PatyczakCanvas"></Canvas>
</Grid>
C#
var _body = new Line
{
X1 = 120,
X2 = 120,
Y1 = 20,
Y2 = 75,
Width = 20.0,
Stroke = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)),
StrokeThickness = 20,
Visibility = Visibility.Visible
};
_body.MouseLeftButtonDown += _BodyLeftMouseButtonEventHandler;
PatyczakCanvas.Children.Add(_body);
以及操纵画布的示例: 滑块值更改方法:
_body.X2 = _body.X1 + DlugoscSlider.Value * Math.Sin(KatSlider.Value * Math.PI / 180.0);
_body.Y2 = _body.Y1 + DlugoscSlider.Value * Math.Cos(KatSlider.Value * Math.PI / 180.0);
我也尝试将线条添加到网格而不是画布,但是当我操纵线条时,它们绘制的宽度/高度并没有改变..
如果有人能帮助我,我将非常感激!
答案 0 :(得分:1)
您应该更改或删除Width
属性:
var _body = new Line
{
X1 = 120,
X2 = 120,
Y1 = 20,
Y2 = 75,
Stroke = Brushes.Red,
StrokeThickness = 20,
};
Width
会影响该行的可见区域。
如果您使用更高的值,则可以看到效果,例如150
:
在您的代码中,Width
小于X1
和X2
,并且该行被绘制在可见区域之外。