Silverlight:使用C#而不是XAML定义自定义ControlTemplate

时间:2010-01-01 06:27:49

标签: silverlight xaml

我相信我正在使用Silverlight 3.0 ...我本周刚刚下载了它。假设图表命名空间引用System.Windows.Controls.DataVisualization assembly in the Silverlight Toolkit,请帮我用C#创建DataPointStyle,因为它在下面的XAML中表示:

<charting:Chart
    Title="Simple Column Annotations - Bottom">
    <charting:ColumnSeries
        DependentValuePath="Value"
        IndependentValuePath="Key"
        ItemsSource="{Binding}">
        <!-- HERE IS WHAT I WANT TO CREATE IN C#: -->
        <charting:ColumnSeries.DataPointStyle>
            <Style TargetType="charting:ColumnDataPoint">
                <Setter Property="Background" Value="Yellow"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="charting:ColumnDataPoint">
                            <Grid>
                                <Rectangle
                                    Fill="{TemplateBinding Background}"
                                    Stroke="Black"/>
                                <Grid
                                    Background="#aaffffff"
                                    Margin="0 -20 0 0"
                                    HorizontalAlignment="Center"
                                    VerticalAlignment="Bottom">
                                    <TextBlock
                                        Text="{TemplateBinding FormattedDependentValue}"
                                        FontWeight="Bold"
                                        Margin="2"/>
                                </Grid>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </charting:ColumnSeries.DataPointStyle>
        <!-- END -->
    </charting:ColumnSeries>
</charting:Chart>

我的目标是构建一个易于使用的模板库,可以应用于图表中的系列。谢谢!

1 个答案:

答案 0 :(得分:2)

您无法单独在C#中定义控件模板。我不确定你为什么要这样做?

只需将您的控件模板集的XAML添加为库中的资源即可。使用XamlReader将这些模板加载到您可以公开公开的对象中。