首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WPF工具包图表中更改绘图区域和标题周围的边距

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

Stack Overflow用户
提问于 2010-08-29 23:20:48
回答 1查看 5.6K关注 0票数 9

我使用的是WPF工具包2010年2月发布的Chart控件。图表相对于绘图区占用了大量空间。

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

谢谢,

雪碧。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-30 16:38:00

我在WPF Toolkit讨论板上找到了一个类似问题的答案,我想我应该分享一下这个知识。

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

代码语言:javascript
复制
<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>

此模板将标题和绘图区周围的页边距删除到最低限度,还会删除图例。然后,我在一个适合我需要的用户控件中使用了它,并多次重用它。

在控件的标头中定义了以下命名空间:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3595310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档