En WPF, ¿por qué no parece la propiedad Rectangle.Fill a trabajar cuando se utiliza un TemplateBinding?

StackOverflow https://stackoverflow.com/questions/673167

  •  21-08-2019
  •  | 
  •  

Pregunta

No puedo entender por qué este código XAML no funciona. Cuando se utiliza un TemplateBinding (véase más adelante), el color de fondo es no set. Pero cuando se utiliza una cadena de color normal (es decir, "Rojo"), que trabaja muy bien.

<ControlTemplate x:Key="InstanceButtonTemplate" TargetType="{x:Type Control}">
    <Grid>
        <Rectangle>
            <Rectangle.Fill>
                <SolidColorBrush Color="{TemplateBinding Background}"></SolidColorBrush>
            </Rectangle.Fill>
        </Rectangle>
    </Grid>
</ControlTemplate>

Sin embargo, cuando se utiliza un TemplateBinding de esta manera, funciona bien ...

<ControlTemplate x:Key="InstanceButtonTemplate" TargetType="{x:Type Control}">
    <Grid>
        <Rectangle Fill="{TemplateBinding Background}"></Rectangle>
    </Grid>
</ControlTemplate>

¿Alguna idea?

Editar: para aclarar, tengo la intención de ampliar esta en lugar de utilizar un pincel de degradado, por eso tengo que ser capaz de asignar a la propiedad usando Rectangle.Fill XAML lugar de una cadena sin formato.

¿Fue útil?

Solución

Esto se debe a color tiene un tipo diferente entonces Fondo

El fondo es un cepillo, color es un color .. bueno .. Puede utilizar un IValueConverter para convertir su cepillo a un color ..

HTH

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top