请教XAML里能实现某个元素的属性等于另一个已经存在的元素属性的一半吗
请问XAML里能实现某个元素的属性等于另一个已经存在的元素属性的一半吗?
需求:
<TextBox x:Name="hehe" Height ="250" />
<TextBox x:Name="hehenimei" Height ="hehe高度的一半" />
我自己用的Binding+Converter实现的:

除此之外,
单纯地在XAML里,能实现某个元素的属性等于另一个已经存在的元素的对应属性的一半(Height ="hehe高度的一半")吗?
------解决方案--------------------
放在一个Grid里,然后一个高度2*,一个高度*。
不过我觉得这招应该不适合你的需求。
------解决方案--------------------
楼主你自己的方法已经是最简洁的了。1楼的也是一个办法,但感觉再添加额外的布局,而且也不算是灵活,感觉不太好。
------解决方案--------------------
楼主自己的方法已经可以了啊。转换器。
需求:
<TextBox x:Name="hehe" Height ="250" />
<TextBox x:Name="hehenimei" Height ="hehe高度的一半" />
我自己用的Binding+Converter实现的:
//数据转换类
public class OriginToHalfConverter : IValueConverter
{
//将Category转化成Uri
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double r = ((double)value) / 2;
return r;
}
//不会被调用
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
<TextBox x:Name="hehe" Height ="20" Margin="5" />
<TextBox x:Name="hehenimei" Height ="{Binding Path=Height,ElementName=hehe,Converter={StaticResource c}}" Margin="5" />
除此之外,
单纯地在XAML里,能实现某个元素的属性等于另一个已经存在的元素的对应属性的一半(Height ="hehe高度的一半")吗?
------解决方案--------------------
放在一个Grid里,然后一个高度2*,一个高度*。
不过我觉得这招应该不适合你的需求。
------解决方案--------------------
楼主你自己的方法已经是最简洁的了。1楼的也是一个办法,但感觉再添加额外的布局,而且也不算是灵活,感觉不太好。
------解决方案--------------------
楼主自己的方法已经可以了啊。转换器。