WPF ValueConversion -3-

索引表示

Z軸を cos() で表示した場合↓




namespace ValueCVTZ
{
[ValueConversion(typeof(Double), typeof(Double))]
public class DataConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// ⇒方向の変換
Double z_forward = (Double)value;
return (Math.Cos(z_forward * 3.1415 / 180) * 500);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// ←方向の変換(逆方向)
Double z_rewind = (Double)value / 500;
Double z_rad = Math.Acos(z_rewind);
z_rewind = z_rad * 180 / 3.1415;
return z_rewind;
}
}
}
namespace ValueCVTX
{
[ValueConversion(typeof(Double), typeof(Double))]
public class DataConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// ⇒方向の変換
Double z_forward = (Double)value;
return z_forward * 3;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// ←方向の変換(逆方向)
Double z_rewind = (Double)value;
return z_rewind / 3;
}
}
}




private void sliderR_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
{
int rad = 85;
sliderR1.Value = sliderR.Value;
sliderR2.Value = sliderR.Value + rad * 1;
sliderR3.Value = sliderR.Value + rad * 2;
sliderR4.Value = sliderR.Value + rad * 3;
sliderR5.Value = sliderR.Value + rad * 4;
sliderR6.Value = sliderR.Value + rad * 5;
sliderR7.Value = sliderR.Value + rad * 6;
sliderR8.Value = sliderR.Value + rad * 7;
}



AX