XAML |
コードのコピー
|
---|---|
<Window x:Class="QuckstartChart3D.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c1chart3d="http://schemas.componentone.com/xaml/c1chart" xmlns:local="clr-namespace:QuckstartChart3D"> <Window.Resources> <!-- コンバータのインスタンス --> <local:LabelToColorConvereter x:Key="cnv" /> </Window.Resources> <Grid> <c1chart3d:C1Chart3D Name="c1Chart3D1" > <c1chart3d:GridDataSeries ZDataString="-1 -1 -1,0 0 0, 1 1 1" /> <c1chart3d:C1Chart3D.AxisZ> <c1chart3d:Axis3D> <!-- 軸注釈テンプレートを設定します --> <c1chart3d:Axis3D.AnnoTemplate> <DataTemplate > <!-- DataContext は軸ラベル(文字列)で、コンバータを使用して色を設定します --> <TextBlock Width="20" Height="12" Text="{Binding}" Foreground="{Binding Converter={StaticResource cnv}}" /> </DataTemplate> </c1chart3d:Axis3D.AnnoTemplate> </c1chart3d:Axis3D> </c1chart3d:C1Chart3D.AxisZ> </c1chart3d:C1Chart3D> </Grid> </Window> |
[表示]→[コード]を選択し、次のコードを追加します。連結コンバータは、この値に基づいて軸ラベルのブラシを選択します。
C# |
コードのコピー
|
---|---|
public class LabelToColorConvereter : IValueConverter { static Brush belowZero = new SolidColorBrush(Colors.Blue); static Brush aboveZero = new SolidColorBrush(Colors.Red); static Brush zero = new SolidColorBrush(Colors.DarkGray); public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { // 軸ラベルを表す文字列 string s = value as string; if (!string.IsNullOrEmpty(s)) { var dv = double.Parse(s); // 値に応じたブラシを返します if (dv < 0) return belowZero; else if (dv > 0) return aboveZero; else return zero; } return value; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } |