我在这篇文章中看到了一个完全符合我需要的解决方案https://stackoverflow.com/a/8858815/1462911。
但我真的不知道如何正确实施它。
我现在有一个PositionConverter转换字符串中的坐标,但我想通过它的参数传递其Parent(画布)的ActualWidth。
我的ConverterHelper是否必须实现IValueConverter和DependencyObject或只是DependencyObject?
我有点失落......
答案 0 :(得分:1)
您最需要的是通过IMultiValueConverter
和MultiBinding
:
public class PositionConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
var scale = (double)values[0]; // this is your [0, 1] double
var max = (double)values[1]; // this is the ActualWidth
return scale * max;
}
}
绑定看起来像:
<Element.Property>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="path_to_the_original_double" />
<Binding RelativeSource="{RelativeSource Mode=FindAncestor, AncestorLevel=1}"
Path="ActualWidth" />
</MultiBinding>
</Element.Property>