In WPF, perché la proprietà Rectangle.Fill non sembra funzionare quando si utilizza un TemplateBinding?

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

  •  21-08-2019
  •  | 
  •  

Domanda

Non riesco a capire perché questo codice XAML non funziona. Quando si utilizza un TemplateBinding (vedi sotto), il colore di sfondo è non set. Ma quando io uso una stringa di colore normale (vale a dire "Rosso"), funziona benissimo.

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

Tuttavia, quando uso TemplateBinding in questo modo, funziona benissimo ...

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

Tutte le idee?

Modifica: per chiarire, ho intenzione di espandere questa utilizzare piuttosto un pennello sfumato, è per questo che ho bisogno di essere in grado di assegnare alla proprietà Rectangle.Fill utilizzando XAML invece di una stringa semplice.

È stato utile?

Soluzione

Questo è perché il colore ha un tipo diverso allora Sfondo

Lo sfondo è un pennello, il colore è un .. beh colori .. È possibile utilizzare un IValueConverter per convertire il vostro pennello per un colore ..

HTH

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top