Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
780
Scrolling Legend?
posted

If I have a large number of series (or data points in a single pie series), the legend gets cut off.  I tried to template the chart to put a ScrollViewer around the LegendPanel, but that didn't work since the XamWebChart.cs code adds the LegendPanel to its RootElement, so I get this:

XamWebChart Warning: Element is already the child of another element

This was my template (which I applied in code behind):

<ControlTemplate TargetType="igChart:XamWebChart">
    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
        <Grid x:Name="RootElement" Background="{TemplateBinding Background}" Margin="{TemplateBinding Padding}" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto" MaxWidth="200"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <Grid x:Name="CaptionPanel" Grid.Row="0" Grid.ColumnSpan="2" Grid.Column="0"/>
            <Grid x:Name="ScenePanel" Grid.Column="0" Grid.Row="1"/>
            <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
                          Grid.Column="1" Grid.Row="1" >
                <Grid x:Name="LegendPanel" Grid.Column="1" Grid.Row="1" />
            </ScrollViewer>                                   
            <!--<igChart:Legend x:Name="LegendPanel" Grid.Column="1" Grid.Row="1" MaxWidth="200"/>-->
        </Grid>
    </Border>
</ControlTemplate>

Is there any way to get some sort of scrolling in the legend so I can see all the items in a pie series (even beyond 50 or so gets cut off depending on the control size)?

Thanks,
Keith

Parents
  • 28496
    Offline posted

    you can put a ScrollViewer in the Legend Template like this:

    <igChart:XamChart.Legend>
                    <igChart:Legend>
                        <igChart:Legend.Style>
                            <Style TargetType="{x:Type igChart:Legend}">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate TargetType="{x:Type igChart:Legend}">
                                            <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                                                <ScrollViewer Height="50">
                                                    <ContentPresenter Height="100"/>
                                                </ScrollViewer>
                                            </Border>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </igChart:Legend.Style>
                    </igChart:Legend>
                </igChart:XamChart.Legend>

Reply Children