Я использую WPF Toolkit (System.Windows.Controls.DataVisualization.Toolkit
) для создания простой диаграммы. Для того, чтобы установить свою Y-ось, чтобы начать с нулевого значения, я поставил Chart.Axes
свойство так:Точки диаграммы инструмента WPF не могут быть установлены через стиль
<chartingToolkit:Chart Width="800" Height="400" Title="Usage" Style="{StaticResource ChartStyle}">
<chartingToolkit:Chart.Axes>
<chartingToolkit:LinearAxis Orientation="Y" Minimum="0" />
</chartingToolkit:Chart.Axes>
<chartingToolkit:LineSeries DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding Data}" />
</chartingToolkit:Chart>
Это прекрасно работает. Однако, когда я пытаюсь установить это свойство через Style
, intellisense даже не показывает Axes
.
<Style x:Key="ChartStyle" TargetType="{x:Type chartingToolkit:Chart}">
<Setter Property="Axes">
<Setter.Value>
<chartingToolkit:LinearAxis Orientation="Y" Minimum="0" />
</Setter.Value>
</Setter>
</Style>
Если я запускаю код, я получаю ArgumentNullException
говоря Property
не может быть пустым. Это Style.Setter.Property
. Я посмотрел в исходный код на Codeplex и нашел Axes
свойство:
[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "Setter is public to work around a limitation with the XAML editing tools.")]
[SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "value", Justification = "Setter is public to work around a limitation with the XAML editing tools.")]
public Collection<IAxis> Axes
{
get
{
return _axes;
}
set
{
throw new NotSupportedException(Properties.Resources.Chart_Axes_SetterNotSupported);
}
}
Он говорит здесь, что сеттер является публичным, но я не могу найти такой публичный метод. Теперь я задаю следующие вопросы:
- Как установить свойство с помощью стиля, технически отличного от первого блока кода в этом вопросе?
- Есть ли способ установить свойство
Axes
через стиль? - Должен ли я использовать WPF Toolkit для диаграмм? Есть ли более новый метод «canon» для создания диаграмм, о которых я не знаю?
Вы должны прикрепить стиль к самому linearAxis, так как в стиле диаграммы нет доступа. –