必要なことは、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>