如何在代码背后设置Lineseries点模板

时间:2013-03-07 20:06:44

标签: c# silverlight xaml telerik

基本上我想在C#后面应用这个XAML代码。这是XAML

        <telerik:LineSeries Stroke="Transparent">
            <telerik:LineSeries.PointTemplate>
                <DataTemplate>
                    <Ellipse Height="10" Width="10" Fill="DarkGreen" />
                </DataTemplate>
            </telerik:LineSeries.PointTemplate>
        </telerik:LineSeries>

这就是我的尝试:

Ellipse e = new Ellipse();
LineSeries line = new LineSeries();
e.Height = 10; 
e.Width = 10; 
line.Stroke = new SolidColorBrush(Colors.Transparent);
line.PointTemplate = new DataTemplate(e);

但它不起作用我得到“DataTemplate.DataType的值必须是System.Type类型。”错误。有谁知道如何正确翻译上面的XAML?

2 个答案:

答案 0 :(得分:3)

这就是我的工作,我创建了一个资源:

<UserControl.Resources>
    <DataTemplate x:Key="PointTemplate">
        <Ellipse Width="5" Height="5" Fill="Coral"/>
    </DataTemplate>
</UserControl.Resources>

然后你可以通过这样做来应用它:

line.PointTemplate = this.Resources["PointTemplate"] as DataTemplate;

答案 1 :(得分:0)

在XAML中创建一个静态资源并将其分配给PointTemplate Property

<Window.Resources>
<DataTemplate x:Key="PointTemplate">
<Ellipse Width="5" Height="5" Fill="Coral"/>
</DataTemplate>
</Window.Resources>

<telerik:ChartSeriesDescriptor.Style>
<Style TargetType="telerik:ScatterSplineSeries">
<Setter Property="YValueBinding" Value="YValue" />
<Setter Property="XValueBinding" Value="XValue" />
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="PointTemplate" Value="{StaticResource PointTemplate}"  />
</Style>
</telerik:ChartSeriesDescriptor.Style>`