Изменение поля вокруг области графика и заголовка в диаграмме Инструментария WPF

Я использую элемент управления Chart в выпуске WPF Toolkit за февраль 2010 года. Диаграмма занимает много места относительно области графика.

Как управлять полем вокруг области графика и заголовком диаграммы. Таким образом, я могу расположить 10 диаграмм, которые мне нужны, в сетке, не занимая так много места на экране.

Спасибо,

sprite.

9
задан Richie Cotton 23 March 2011 в 08:27
поделиться

1 ответ

Я нашел ответ на аналогичный вопрос на форумах WPF Toolkit и решил поделиться своими знаниями.

Единственное доступное в настоящее время решение — самостоятельно оформить диаграмму. В общем, я взял исходное определение стиля из исходного кода инструментария и изменил его в соответствии со своими потребностями. Я также использовал это, чтобы полностью удалить легенду.

<Grid.Resources>
    <!-- chart style modified from WPFToolkit\DataVisualization\Themes\generic.xaml -->
    <Style TargetType="charts:Chart">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="charts:Chart">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <dataVis:Title Content="{TemplateBinding Title}" Style="{TemplateBinding TitleStyle}" Margin="1"/>
                        <!-- Use a nested Grid to avoid possible clipping behavior resulting from ColumnSpan+Width=Auto -->
                        <Grid Grid.Row="1" Margin="5,0,5,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <chartPrmtvs:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
                                <Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
                                <Border Canvas.ZIndex="10" BorderBrush="#FF919191" BorderThickness="1" />
                            </chartPrmtvs:EdgePanel>
                        </Grid>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Grid.Resources>

Этот шаблон удаляет поля до минимума вокруг заголовка и области графика, а также удаляет легенду. Затем я использовал это в пользовательском элементе управления, соответствующем моим потребностям, и многократно использовал его повторно.

В заголовке элемента управления были определены следующие пространства имен:

xmlns:dataVis="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:chartPrmtvs="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:charts="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"

Наслаждайтесь!

10
ответ дан 3 November 2019 в 01:52
поделиться
Другие вопросы по тегам:

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