locked
silverlight toolkit 中的chart问题,two scales sample相关! RRS feed

  • 问题

  •  <Grid x:Name="LayoutRoot" Background="White" Height="210" Width="1050">
            <d3:Figure x:Name="figure">
                <TextBlock x:Name="lblTitle" d3:Figure.Placement="Top" FontSize="14" Text="Two scales sample" TextAlignment="Center" Margin="5"/>
                <d3:PlotAxis x:Name="leftAxis" d3:Plot.Y1="400"    d3:Figure.Placement="Left" AxisOrientation="Left" Foreground="Blue"/>
                <d3:PlotAxis x:Name="bottomAxis" d3:Figure.Placement="Bottom" AxisOrientation="Bottom"/>
                <d3:LineGraph x:Name="lgRight" Stroke="Red" >
                    <d3:LineGraph.YDataTransform>
                        <d3:LinearDataTransform  />
                    </d3:LineGraph.YDataTransform>
                </d3:LineGraph>
                <d3:LineGraph x:Name="lgLeft" Stroke="Blue" > 
                 </d3:LineGraph>
                <d3:PlotAxis x:Name="rightAxis" d3:Figure.Placement="Right" AxisOrientation="Right" Foreground="Red" YDataTransform="{Binding YDataTransform,ElementName=lgRight}"/>
                <d3:MouseNavigation/>
            </d3:Figure>     </Grid>

    你好,我代码大致如上,左右都有刻度,右边红色,左边蓝色,后台代码

    定时赋值:    lgLeft.PlotY(YLeftData);
                lgRight.PlotY(YRightData);

    YleftData,YRightData是数组double[] ,有个问题,如果YleftData数值在1000到2000,而YRightdata在0到1之间,右边的刻度就会很小看不出来,

    我想让左右的刻度高度都能自己定义,即Yleftdata最大2000,最小1000,左边刻度最上方2000,下方1000,而右边最大1,最小0则右边刻度最上显示1,最下0,这样子代码中如何实现呢?谢谢!

    2012年4月17日 5:59

全部回复

  • 你好,

    你要想两边的刻度不一样,那应该对LineGraph赋值呀,就像给出的例子那样:

                sinc.Plot(x, y1);
                xcube.Plot(x, y2);

    这样控件就会自动帮你处理刻度的显示,还有一点就是设置LinearDataTransform,比如:

                <d3:LineGraph x:Name="lgLeft" Stroke="Blue" >
                    <d3:LineGraph.YDataTransform>
                        <d3:LinearDataTransform Scale="0.001"/>
                    </d3:LineGraph.YDataTransform>
                </d3:LineGraph>


    Daoping Liu - MSFT

    2012年4月19日 3:19
  • 我的意思是最大范围的控制:即Yleftdata最大2000,最小1000,左边刻度最上方2000,下方1000,而右边最大1,最小0则右边刻度最上显示1,最下0,

    上面这样的方法会让刻度差的范围很大

    2012年4月20日 6:35