1

我正在(尝试)编写一个 Silverlight 5 应用程序来显示一些图表。我已经从 Codeplex(2011 年 12 月版)安装了 Silverlight 5 工具包,并且我已经自定义了图表控件模板以将图例移动到图表的底部,但是 - 一旦图例重新定位开始工作 - ChartArea 本身就会不显示任何数据。

为了尝试解决这个问题(没有出现 ChartArea 数据),我已经包含了定义

xmlns:chartingprimitives="clr-命名空间:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"

但是当我尝试修改模板以使用标签时

<chartingprimitives:Edgepanel>

Visual Web Developer 2012 说找不到...

有人知道这个标签去了哪里吗?它是否已被移动到另一个包含中,或者是否已被标记替换为某些图表控件模板示例所示???

4

2 回答 2

0
   <toolkit:Chart
                    x:Name="barStyledChart"
                    Foreground="#FF579ED4"
                    Style="{StaticResource GreenFxChartStyle}"
                    FontSize="8"
                    Width="290"
                    Height="170"
                    BorderThickness="0">
                    <toolkit:Chart.Axes>
                        <toolkit:LinearAxis ShowGridLines="True" Orientation="X" Interval="1">
                            <toolkit:LinearAxis.GridLineStyle>
                                <Style TargetType="Line">
                                    <Setter Property="Stroke" Value="#FF579ED4"></Setter>
                                </Style>
                            </toolkit:LinearAxis.GridLineStyle>
                        </toolkit:LinearAxis>
                        <toolkit:LinearAxis ShowGridLines="True" Orientation="Y" Location="Left" Minimum="0" Maximum="200">
                            <toolkit:LinearAxis.GridLineStyle>
                                <Style TargetType="Line">
                                    <Setter Property="Stroke" Value="#FF032F50"></Setter>
                                </Style>
                            </toolkit:LinearAxis.GridLineStyle>
                        </toolkit:LinearAxis>
                    </toolkit:Chart.Axes>
                    <toolkit:ColumnSeries Background="#FF53C023" 
            AnimationSequence="FirstToLast" 
            DependentValuePath="X" IndependentValuePath="Y">
            <toolkit:ColumnSeries.ItemsSource>
                <PointCollection>
                    <Point>100,2000</Point>
                    <Point>105,2001</Point>
                    <Point>98,2002</Point>
                    <Point>88,2003</Point>
                    <Point>150,2004</Point>
                    <Point>125,2005</Point>
                    <Point>93,2006</Point>
                    <Point>112,2007</Point>
                    <Point>145,2008</Point>
                    <Point>165,2009</Point>
                    <Point>173,2010</Point>
                    <Point>168,2011</Point>
                    <Point>160,2012</Point>
                    <Point>164,2013</Point>
                    <Point>158,2014</Point>                                                                     
                </PointCollection>
            </toolkit:ColumnSeries.ItemsSource>
                        <toolkit:ColumnSeries.DataPointStyle>
                            <Style TargetType="toolkit:ColumnDataPoint">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="toolkit:ColumnDataPoint">
                                            <Grid Width="10">
                                                <Border BorderBrush="White" BorderThickness="1">
                                                    <Rectangle Fill="#FF53C023" Opacity=".8"></Rectangle>
                                                </Border>
                                            </Grid>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </toolkit:ColumnSeries.DataPointStyle>
                    </toolkit:ColumnSeries>
                </toolkit:Chart>




<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
xmlns:datavis="clr-namespace:System.Windows.Controls.DataVisualization"
xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"
xmlns:SampleData="clr-namespace:Expression.Blend.SampleData.ProgressionSequenceData" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
x:Class="SilverlightChartScratchpad.App">
<Application.Resources>
    <SampleData:ProgressionSequenceData x:Key="ProgressionSequenceData" d:IsDataSource="True"/>

    <Style x:Key="GreenFxChartStyle" TargetType="toolkit:Chart" >
      <Setter Property="BorderBrush" Value="Black" />
      <Setter Property="BorderThickness" Value="0" />
      <Setter Property="IsTabStop" Value="False" />
      <Setter Property="Padding" Value="10" />

        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.352,1.144" StartPoint="0.352,-0.161">
                    <GradientStop Color="#FF0585D6" Offset="0.268"/>
                    <GradientStop Color="#FF01336E" Offset="0.847"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>         

      <Setter Property="TitleStyle">
        <Setter.Value>
          <Style TargetType="toolkit:Title">
                            <Setter Property="Margin" Value="0" />
                            <Setter Property="Width" Value="0"/>
                            <Setter Property="Height" Value="0"/>
          </Style>
        </Setter.Value>
      </Setter>
      <Setter Property="LegendStyle">
        <Setter.Value>
          <Style TargetType="toolkit:Legend">
                            <Setter Property="Margin" Value="0" />
                            <Setter Property="Width" Value="0"/>
                            <Setter Property="Height" Value="0"/>
          </Style>
        </Setter.Value>
      </Setter>
      <Setter Property="ChartAreaStyle">
        <Setter.Value>
          <Style TargetType="Panel">
            <Setter Property="MinWidth" Value="100" />
            <Setter Property="MinHeight" Value="75" />
          </Style>
        </Setter.Value>
      </Setter>
      <Setter Property="PlotAreaStyle">
        <Setter.Value>
          <Style TargetType="Grid">
            <Setter Property="Background" Value="Transparent"></Setter>
          </Style>
        </Setter.Value>
      </Setter>
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="toolkit:Chart">
            <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
              <Grid>
                <Grid.RowDefinitions>
                  <RowDefinition Height="Auto" />
                  <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <toolkit:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />
                <!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto -->
                <Grid Grid.Row="1" Margin="0,0,0,0">
                  <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" />
                  </Grid.ColumnDefinitions>
                  <toolkit:Legend x:Name="Legend" Header="{TemplateBinding LegendTitle}" Style="{TemplateBinding LegendStyle}" Grid.Column="1" />
                  <chartingprimitives:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                    <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                    <Border Canvas.ZIndex="10" BorderBrush="#FF032F50" BorderThickness="0,0,0,1" />
                  </chartingprimitives:EdgePanel>
                </Grid>
              </Grid>
            </Border>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>

</Application.Resources>
于 2013-04-29T09:02:18.283 回答
0

现在不再关心 - 两年前抛弃了所有 Silverlight 开发..

于 2018-02-23T21:02:26.917 回答