Скрыть легенду диаграммы WPF Toolkit с более чем одним рядом данных

Я пытаюсь использовать диаграммы из WPF Toolkit (с LineSeries), и мне не нужна легенда в все. Мне это нужно, так как у меня есть 10 таких диаграмм, каждая из которых содержит данные из разных источников, и я хотел бы нарисовать одну легенду для всех 10, чтобы сохранить экранное пространство.

По умолчанию легенда появляется, когда вы добавляете второй LineSeries. Есть ли способ предотвратить его появление?

Спасибо,

sprite.

20
задан sprite 29 August 2010 в 14:59
поделиться

1 ответ

Кажется, нет особо чистого пути. Один из простых подходов — установить ширину легенды на ноль с помощью LegendStyle:

<charting:Chart>
    <charting:Chart.LegendStyle>
        <Style TargetType="datavis:Legend">
            <Setter Property="Width" Value="0" />
        </Style>
    </charting:Chart.LegendStyle>

Более радикальный подход — заменить ControlTemplate тем, который не включает легенду:

<charting:Chart>
    <charting:Chart.Template>
        <ControlTemplate TargetType="{x:Type charting:Chart}">
            <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <datavis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" />
                    <chartingprimitives:EdgePanel Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}" Grid.Row="1" Margin="0,15,0,15">
                        <Grid Panel.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                        <Border Panel.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
                    </chartingprimitives:EdgePanel>
                </Grid>
            </Border>
        </ControlTemplate>
    </charting:Chart.Template>

Используйте следующие пространства имен:

xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:datavis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:chartingprimitives="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
46
ответ дан 29 November 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: