2010年2月リリースのWPFツールキットのチャートコントロールを使用しています。チャートは、プロット領域に比べて多くのスペースを占めます。
プロット領域とチャートのタイトルの周囲のマージンを制御するにはどうすればよいですか。このようにして、画面上のスペースをあまり使用せずに、必要な10個のチャートをグリッドに配置できます。
ありがとう、
スプライト。
2010年2月リリースのWPFツールキットのチャートコントロールを使用しています。チャートは、プロット領域に比べて多くのスペースを占めます。
プロット領域とチャートのタイトルの周囲のマージンを制御するにはどうすればよいですか。このようにして、画面上のスペースをあまり使用せずに、必要な10個のチャートをグリッドに配置できます。
ありがとう、
スプライト。
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"
楽しみ!