hacer referencia a un recurso doble dentro de otro recurso doble

Me gustaría hacer referencia a un recurso de Double dentro de otro recurso de Double, algo como esto:

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

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

¿Cómo puedo hacer esto?

preguntado el 09 de enero de 11 a las 09:01

2 Respuestas

Dudo que esto sea posible, está haciendo referencia a un tipo de datos atómico que no puede contener nada más que un valor numérico que no es ni un campo ni una propiedad. Para permitir eso, probablemente necesite crear su propio tipo de datos.

Edit: Normalmente debería poder utilizar un DynamicResource para esto:

<DynamicResource x:Key="height" ResourceKey="width"/>

(A Visual Studio no le gustará esto, pero debería compilarse y funcionar)

Respondido el 28 de junio de 11 a las 05:06

Bueno, no estoy seguro de que el ejemplo que estás dando pueda funcionar, ya que no puedo vincular "sys: Double".

pero aparte de eso, la respuesta a su pregunta: puede usar un convertidor, y es bastante simple. agregue esta clase:

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();
    }
}

y luego hacer referencia a esta clase en el xaml (asegúrese de usar el xmlns de su proyecto primero):

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

ahora en su enlace puede hacer algo como:

<UserControl Height="{Binding path={StaticResource width}, Converter={StaticResource DoubleConvertor} />

Respondido 24 Oct 11, 17:10

Este convertidor no es necesario, ya que en realidad no convierte el valor. Solo sería necesario si (por ejemplo) desea que la altura sea 2 * ancho. - Tim Cooke

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.