wpf - 在WPF工具包图表中更改绘图区域和标题周围的边距

标签 wpf charts customization wpftoolkit data-visualization

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

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

谢谢,

雪碧。

最佳答案

我在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>

此模板将标题和情节区域周围的边距最小化,还删除了图例。然后,我在适合我需要的用户控件中使用了此控件,并多次重复使用了它。

在控件的标题中定义了以下 namespace :
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"

享受!

关于wpf - 在WPF工具包图表中更改绘图区域和标题周围的边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3595310/

相关文章:

javascript - y 轴为时间的图表

javascript - Angular nvd3折线图长度

r - 带背景阴影的 ggplot2 时间序列图

javascript - 如何定制基于 webpack 的应用程序或库?

java - 如何让 Java 从备用位置获取首选项?

.net - WPF:如何根据 XAML 中另一个的 Text 属性更改文本框的前景色?

c# - 如何绑定(bind)我的 ListView 组合框的选定项目

javascript - 你能创建一个自定义的 jQuery 库构建吗?

WPF在UI中快速绘制图像的方法

wpf - 如何动态绑定(bind)和静态添加 MenuItem?