In WPF, perché la proprietà Rectangle.Fill non sembra funzionare quando si utilizza un TemplateBinding?
-
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.
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