0

我在这篇文章中看到了一个完全符合我需求的解决方案https://stackoverflow.com/a/8858815/1462911

但我真的不知道如何正确实施它。

我现在有一个 PositionConverter,它可以转换字符串中的坐标,但我想通过它的参数传递它的父级(画布)的 ActualWidth。

我的 ConverterHelper 是否必须实现 IValueConverter 和 DependencyObject 或只是 DependencyObject?

我有点失落......

4

1 回答 1

1

您需要的最好通过 anIMultiValueConverter和 a完成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>
于 2012-06-29T13:52:05.723 回答