Silverlight: Как изменить AxisLabelStyle в коде позади? - PullRequest
0 голосов
/ 16 марта 2011

В файле xaml мы можем изменить AxisLabelStyle следующим образом:

<chartingToolkit:ColumnSeries.IndependentAxis>
    <chartingToolkit:CategoryAxis Orientation="X">
       <chartingToolkit:CategoryAxis.AxisLabelStyle>
         <Style TargetType="chartingToolkit:AxisLabel">
            <Setter Property="Template">
               <Setter.Value>
                   <ControlTemplate TargetType="chartingToolkit:AxisLabel">
                         <!--some code here-->
                   </ControlTemplate>
               </Setter.Value>
            </Setter>
         </Style>
       </chartingToolkit:CategoryAxis.AxisLabelStyle>
    </chartingToolkit:CategoryAxis>
</chartingToolkit:ColumnSeries.IndependentAxis>

Мой вопрос: как добавить AxisLabelStyle в коде позади?DataPointStyle, выполнив это:

ColumnSeries CS = new ColumnSeries();
CS.DataPointStyle = Application.Current.Resources["ByteBlocksColumns"] as Style;

Но, очевидно, мы не можем напрямую изменить AxisLabelStyle, как это, потому что AxisLabelStyle находится внутри CategoryAxis.Спасибо!

1 Ответ

1 голос
/ 21 марта 2011

Я немного изменил ваш xaml.

    <charting:Chart>
        <charting:ColumnSeries x:Name="CS" ItemsSource="{Binding Items}" IndependentValuePath="X" DependentValuePath="Y">
            <charting:ColumnSeries.IndependentAxis>
                <charting:CategoryAxis Orientation="X" />
            </charting:ColumnSeries.IndependentAxis>
        </charting:ColumnSeries> 
    </charting:Chart>

Вышеприведенный xaml можно записать на c # так:

var CS = new ColumnSeries
         {
             ItemsSource = model.Items,
             IndependentValuePath = "X",
             DependentValuePath = "Y",
             IndependentAxis = new CategoryAxis { Orientation = AxisOrientation.X }
         };   

А теперь в коде позади вы можете установитьсвойство AxisLabelStyle следующим образом:

var labelStyle = new Style(typeof(AxisLabel));
labelStyle.Setters.Add(new Setter(AxisLabel.StringFormatProperty, "Category {0}"));

var axis = (CategoryAxis)CS.IndependentAxis;
axis.AxisLabelStyle = labelStyle;

Не забудьте привести свойство IndependentAxis к правильному типу, потому что по умолчанию оно имеет тип IAxis, который не имеетстиль метки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...