在Windows Phone 7上使用Silverlight Toolkit Chart时遇到的错误



最近在Windows Phone 7上使用Chart Control的时候遇到了一个小问题,因此利用这篇文章来分享一下解决的方式。 要在WP7上做图表的话,因为内建并没有图表控制项,而且Silverlight for Windows Phone Toolkit也没有,所以我这裡使用的是Silverlight 3 Toolkit中的Chart控制项,使用Silverlight 3 Toolkit是因为Silverlight f
  

  最近在Windows Phone 7上使用Chart Control的时候遇到了一个小问题,因此利用这篇文章来分享一下解决的方式。 要在WP7上做图表的话,因为内建并没有图表控制项,而且Silverlight for Windows Phone Toolkit也没有,所以我这裡使用的是Silverlight 3 Toolkit中的Chart控制项,使用Silverlight 3 Toolkit是因为Silverlight for Windows Phone是以Silverlight 3为基础。

  首先在专案中先引用System.Windows.Controls.DataVisualization.Toolkit,预设的位置在C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Toolkit\Nov09\Bin目录底下

  

 

  接着切换到BLEND中到工具箱找到Chart控制项后在介面上画出

  

 

  介面的XAML如下:

< phone:PhoneApplicationPage
    xmlns=
"http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x=
"http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone=
"clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell=
"clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d=
"http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc=
"http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:chartingToolkit=
"clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"  
    x:Class=
"ChartSample.MainPage"
    mc:Ignorable=
"d"  d:DesignWidth= "480"  d:DesignHeight= "768"
    FontFamily=
"{StaticResource PhoneFontFamilyNormal}"
    FontSize=
"{StaticResource PhoneFontSizeNormal}"
    Foreground=
"{StaticResource PhoneForegroundBrush}"
    SupportedOrientations=
"Portrait"  Orientation= "Portrait"
    shell:SystemTray.IsVisible=
"True">

    < Grid x:Name= "LayoutRoot"  Background= "Transparent">
        < Grid.RowDefinitions>
            < RowDefinition Height= "Auto" />
            < RowDefinition Height= "*" />
        < /Grid.RowDefinitions>

        < StackPanel x:Name= "TitlePanel"  Grid.Row= "0"  Margin= "12,17,0,28">
            < TextBlock x:Name= "PageTitle"  Text= "Chart"  Margin= "9,-7,0,0"  Style= "{StaticResource PhoneTextTitle1Style}" />
        < /StackPanel>

        < Grid x:Name= "ContentPanel"  Grid.Row= "1"  Margin= "12,0,12,0">
          < chartingToolkit:Chart Margin= "21,24,20,35"  Title= "Chart Title">
            < chartingToolkit:Chart.DataContext>
              < PointCollection>
                < Point>1,10< /Point>
                < Point>2,20< /Point>
                < Point>3,30< /Point>
                < Point>4,40< /Point>
              < /PointCollection>
            < /chartingToolkit:Chart.DataContext>
            < chartingToolkit:ColumnSeries DependentValuePath= "X"  IndependentValuePath= "Y"  ItemsSource= "{Binding}" />
          < /chartingToolkit:Chart>
        < /Grid>
    < /Grid>
< /phone:PhoneApplicationPage>

 

  再切换回VS2010来执行,但是执行时就会跳出下面这个 AG_E_PARSER_BAD_TYPE 错误而无法继续执行页面

  

 

  解决的方式是需要在专案中再引用一个System.Windows.Controls,预设位置在C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Libraries\Client目录底下

  

 

  这时再执行一次就不会发生错误可以正确显示出图表了

  

  本文来自eternaltung的博客,原文地址:http://www.dotblogs.com.tw/eternaltung/archive/2011/03/25/wp7silverlighttoolkitchart.as

你可能感兴趣的:(windows,shell,Microsoft,silverlight,Blend,phone,binding)