引用另一个double资源中的double资源

时间:2011-01-09 09:04:10

标签: wpf xaml resources

我想在另一个Double资源中引用Double的资源, 像这样的东西:

<sys:Double x:Key="width">100</sys:Double>

<sys:Double x:Key="height">{StaticResource width}</sys:Double>

我该怎么做?

2 个答案:

答案 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不会喜欢这个,但它应该编译并运行