xaml中怎么动态设定属性?
比如StackPanel中有一个Rectangle,我希望当Rectangle的Margin随StackPanel宽度的变化而变化,比如,StackPanel的Width是100时Rectangle的Margin为10,0,10,0,当Width为200时为20,0,20,0,以此类推。请问在xaml中怎么实现?不要通过后台用IValueConverter。
------解决方案--------------------同类型,但是值有发生变化的,也要有转换,只有完全相同的值才可以直接设置绑定,对于默认有转换的可以不需要,比如字符串到日期类型的转换,使用默认格式就完成的,因此不需要自定义IValueConverter,再比如字符串“True”到Bollean类型的true的转换,也是系统直接支持的,因此也不需要自定义了。
------解决方案--------------------
可以带参数的啊。Xaml中类似这样:
Width="{Binding ElementName=Ex1, Path=ActualWidth, Converter={StaticResource ItemsWidthCov},ConverterParameter='10'}
接口实现这样:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double myWidth = (double)value - double.Parse(parameter as string);
if (myWidth > 0) return myWidth;
else return 0;
}