Nel mio stile di WPF ho definito un'altezza di riga di tabelle standard vorrei applicare a diversi luoghi in questo modo:Impostazione dell'altezza RowDefinition da StaticResource
<system:Double x:Key="TableRowHeight">22</system:Double>
Tuttavia non funziona quando mi piacerebbe di applicare questo modo:
<RowDefinition Height="{StaticResource TableRowHeight}"/>
Invece ho bisogno di creare uno stile completa come:
<Style x:Key="GridTableRow" TargetType="{x:Type RowDefinition}">
<!--<Setter Property="Height" Value="{StaticResource TableRowHeight}"/>-->
<Setter Property="Height" Value="22"/>
</Style>
come si può vedere dalla riga commentata cercando di fare riferimento alla costante numerica all'interno della definizione di stile non funziona neanche, ma il valore "hardcoded" lo fa.
Ora ho guardato in su e credo che sia perché il tipo associato con la proprietà Height è GridLength e in qualche modo non riesce a lanciare automaticamente il doppio valore quando ritornassi da un'altra risorsa ...
Il problema è che non sembra esserci un modo per creare un oggetto GridLength da XAML. Il valore propery è readonly. Quindi, qualcosa come questo non funziona neanche:
<Style x:Key="GridTableRow" TargetType="{x:Type RowDefinition}">
<Setter Property="Height">
<Setter.Value>
<GridLength Value="{StaticResource TableRowHeight}"/>
</Setter.Value>
</Setter>
</Style>
C'è un modo per ottenere questo lavoro, o devo solo dimenticare usando quel costante e basta usare lo stile RowDefinition con il valore hardcoded al posto della costante?
Il suggerimento con l'uso della sintassi '{Binding Source = ...}' funziona! Grazie! – bjavor
La definizione di GridLength come suggerito sopra e in altre risposte funziona pure, ma ha lo stesso inconveniente di dover definire l'intero stile di RowDefinition con un valore codificato ... Non è possibile collegare il valore al sistema: doppia risorsa. (Almeno non ho trovato un modo per fare riferimento a un'altra risorsa dall'interno del tag ...) E non c'è alcun attributo "Valore" esposto su GridLength ... – bjavor
EDIT: Il motivo per cui insisto collegamento al doppio valore, poiché potrebbe essere necessario riutilizzare tale valore in qualche altro contesto, che non richiede una GridLength o un'altra risorsa specializzata ... – bjavor