2013-10-10 5 views
0

Я пытаюсь программно установить ширину столбцов в линейной диаграмме инструментария WPF. Ниже приведен код. Но я не могу установить ширину, используя ColumnDataPoint.WidthProperty.Графические диаграммы инструментария WPF, программно программируя ширину столбца

Любые предложения были бы очень полезными!

Style columnStyleRed = new Style(typeof(ColumnDataPoint)); 
    columnStyleRed.BasedOn = this.Resources["CustomStyle"] as Style; 
    Setter setBackgroundRed = new Setter(ColumnDataPoint.BackgroundProperty, new SolidColorBrush(Colors.DarkRed)); 
    Setter setWidth = new Setter(ColumnDataPoint.WidthProperty, 20); 
    columnStyleRed.Setters.Add(setBackgroundRed); 

Спасибо!

ответ

0

Я пробовал то же самое без везения.

Банкомат, я ищу OxyPlot, который, кажется, играет намного лучше, чем набор инструментов.

Это похоже на работу:

<oxy:ColumnSeries ... ItemsSource="{Binding Items}" ... ColumnWidth="4"/> 

Это также можно сделать из кода, если вам это нужно.

0

Уродливое исправление, у меня такая же проблема, но мои дисплеи будут статичными до чисел столбцов. Я жестко закодировал поля в шаблоне, которые увеличивали ширину.

<Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="DVC:ColumnDataPoint"> 
       <Grid> 
        <Rectangle 
           Fill="{TemplateBinding Background}" 
           Stroke="Black" 
           StrokeThickness="1" 
         Margin="0,0,-20,0"/> 
        <Grid 
           Background="Transparent" 
           Margin="0 -20 0 0" 
           HorizontalAlignment="Stretch" 
           VerticalAlignment="Top"> 
         <TextBlock 
          HorizontalAlignment="Center" 
          Background="Yellow"   
          Text="{TemplateBinding FormattedDependentValue}" 
            FontWeight="Bold" 
          FontSize="8" 
            Margin="5,5,-20,2"/> 
        </Grid> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
Смежные вопросы