LegendBox에 CheckBox, Series모양, Series 이름을 넣은 화면입니다.

 

 

[이미지 1] LegendBox에 CheckBox를 추가한 모습

 

 

Xaml 부분에 아래와 같이 추가합니다.

 

xmlns:cfxConverters="http://schemas.softwarefx.com/chartfx/wpf/80/converters"

xmlns:cfxControls="http://schemas.softwarefx.com/chartfx/wpf/80/controls"

 

.............

 

 

<cfx:Chart.Resources>

     <DataTemplate x:Key="CheckLegend">

         <DataTemplate.Resources>

             <cfxConverters:VisibilityToBooleanConverter x:Key="VisibilityToBool" FalseVisibility="Hidden"/>

         </DataTemplate.Resources>

         <Grid>

             <Grid.ColumnDefinitions>

                 <ColumnDefinition Width="Auto" />

                 <ColumnDefinition Width="Auto" />

                 <ColumnDefinition Width="*" />

             </Grid.ColumnDefinitions>

             <CheckBox Margin="2,0" VerticalAlignment="Center" IsChecked="{Binding Path=Visibility, Converter={StaticResource VisibilityToBool}}" />

             <cfxControls:MarkerLegendControl Content="{Binding Path=Self}"   Grid.Column="1" Margin="2,0" />

             <TextBlock FontFamily="{Binding Path=FontFamily}" FontSize="{Binding Path=FontSize}" Text="{Binding Path=Text}" Grid.Column="2" VerticalAlignment="Center" Margin="2,0" />

         </Grid>

     </DataTemplate>

 </cfx:Chart.Resources>

 <cfx:Chart.AxisX>

 

 

 

현재 Xaml코드에서 DataTamplate를 변경할 방법이 없어 cs 코드상에서 구현해 주어아한다고 하네요.

 

ChartFX.WPF.LegendItemAttributes itemAttr = this.chart.LegendBox.ItemAttributes[chart.Series];

itemAttr.Template = (DataTemplate)this.chart.FindResource("CheckLegend"); 

 

 

 

 

 

참조 : SoftWare FX Community - WPF Blog

+ Recent posts