2009-11-26 97 views
0

我有一个简单的控制代码来添加一些路径。当我将控件添加到控件画布时,什么也没有显示出来。为了确保我没有发疯,我通过代码进行了调试,并创建了一个XAML等价物,并将其放在我的控件应该显示的位置。我试过改变z-index和各种Top/Left组合来尝试让我的路径显示,但没有运气。我的控件位于Canvas儿童集合中,但他们只是不想出现!这里是我的代码不显示Silverlight动态控制

for (int i = 0; i < 4; i++) 
{ 
    SolidColorBrush brush = new SolidColorBrush(); 
    brush.Color = GetColor(); 

    path = new Path(); 
    path.Data = getData(i); 
    path.Name = i.ToString(); 
    path.SetValue(Canvas.LeftProperty, 150.0); 
    path.SetValue(Canvas.TopProperty, 150.0); 
    path.SetValue(Canvas.ZIndexProperty, 1000); 
    path.Fill = brush; 
    mainLayout.Children.Add(path); 
} 

并继承了XAML。硬编码的路径是我通过代码遍历创建的路径。

<Canvas Name="mainLayout"> 
    <Path Name="Path5" Fill="Red" Canvas.Left="450" Canvas.Top="150" Data="M 0,-100 A 100,100 0.628332123128715 0 1 58.7796248729471,-80.9009004881628 L 0,0" ></Path> 
    <Path Name="Path6" Fill="Green" Canvas.Left="450" Canvas.Top="150" Data="M 58.7796248729471,-80.9009004881628 A 100,100 0.559576083957105 0 1 92.7589501245075,-37.3601013355041 L 0,0" ></Path> 
    <Path Name="Path7" Fill="Blue" Canvas.Left="450" Canvas.Top="150" Data="M 92.7589501245075,-37.3601013355041 A 100,100 3.11153310318617 0 1 -91.5941871397306,40.1310961999795 L 0,0" ></Path> 
    <Path Name="Path8" Fill="Yellow" Canvas.Left="450" Canvas.Top="150" Data="M -91.5941871397306,40.1310961999795 A 100,100 1.98374399690759 0 1 -1.1330996904646E-13,-100 L 0,0" ></Path> 
</Canvas> 

当我运行所有东西时,只有硬编码路径出现。

回答

1

两个简单的问题,当你通过它踩,确实GETDATE(我)返回的路径,并且做的getColor()返回任何其他除外colors.transparent

+0

发现的问题。我的getColor函数将alpha通道设置为1而不是255,所以很自然地我看不到它。 – Matt 2009-11-26 18:30:02