绑定到元素高度加上一个值

时间:2015-08-02 16:48:04

标签: xaml binding windows-8.1 winrt-xaml windows-10

我想将元素高度绑定到另一个元素高度再加上20像素......

有可能做这样的事吗?

<ScrollViewer Height="{Binding Height, ElementName=AnotherElement}">

1 个答案:

答案 0 :(得分:1)

是的,使用值转换器

public class IncreaseByValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var passedInValue = System.Convert.ToDouble(value);
        var increaseByValue = System.Convert.ToDouble(parameter);

        return passedInValue + increaseByValue;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

在资源中的某处定义为静态资源:

<local:IncreaseByValueConverter x:Key="IncreaseByValueConverter" />

像这样使用:

<ScrollViewer Height="{Binding Height, ElementName=AnotherElement, Converter={StaticResource IncreaseByValueConverter}", ConverterParameter="20">

您可能希望通过在IncreaseByValueConverter.Convert方法中使用一些try / catch代码来更好地处理转换器参数。例如,将参数设为可选参数,因此如果未传入参数,请使用默认值,或类似的...