【问题标题】:Change margin around plot area and title in WPF Toolkit chart在 WPF Toolkit 图表中更改绘图区域和标题周围的边距
【发布时间】:2011-04-05 10:48:09
【问题描述】:

我正在使用 WPF Toolkit 2010 年 2 月版的图表控件。图表相对于绘图区域占用了大量空间。

如何控制绘图区域和图表标题周围的边距。这样,我就可以在一个网格中排列我需要的 10 个图表,而不必在屏幕上占用太多空间。

谢谢,

精灵。

【问题讨论】:

    标签: wpf charts customization wpftoolkit data-visualization


    【解决方案1】:

    我在 WPF 工具包讨论板上找到了一个类似问题的答案,并认为我会分享知识。

    目前唯一可用的解决方案是自己设置图表样式。所以基本上,我从工具包的源代码中获取了原始样式定义,并对其进行了修改以满足我的需求。我也用它来完全删除图例。

    <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"
    

    享受吧!

    【讨论】:

    • 你成就了我的一天!!非常感谢!
    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多