我想在另一个Double资源中引用Double的资源, 像这样的东西:
<sys:Double x:Key="width">100</sys:Double>
<sys:Double x:Key="height">{StaticResource width}</sys:Double>
我该怎么做?
答案 0 :(得分:0)
好吧,我不确定你给出的例子是否可行,因为我无法对“sys:Double”进行绑定。
但除此之外,你的回答是: 你可以使用转换器,它非常简单。 添加这个类:
class DoubleConvertor : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
并在xaml中引用此类(确保首先使用项目的xmlns):
<local:DoubleConvertor x:Key="DoubleConvertor" />
现在在您的绑定中,您可以执行以下操作:
<UserControl Height="{Binding path={StaticResource width}, Converter={StaticResource DoubleConvertor} />
答案 1 :(得分:0)
我怀疑这是可能的,你引用的是一个原子数据类型,它只能包含一个既不是字段也不属性的数值。为此,您可能需要创建自己的数据类型。
修改:通常您应该可以使用DynamicResource
:
<DynamicResource x:Key="height" ResourceKey="width"/>
( Visual Studio不会喜欢这个,但它应该编译并运行)