In meinem WPF-Stil habe ich eine Standard-Raster Zeilenhöhe I definiert sind, wie so zu mehreren Stellen bewerben möchten:Einstellen der RowDefinition Höhe von Static
<system:Double x:Key="TableRowHeight">22</system:Double>
aber es funktioniert nicht, wenn ich möchte dies gilt etwa so:
<RowDefinition Height="{StaticResource TableRowHeight}"/>
Stattdessen muss ich wie ein komplettes Stil erstellen:
<Style x:Key="GridTableRow" TargetType="{x:Type RowDefinition}">
<!--<Setter Property="Height" Value="{StaticResource TableRowHeight}"/>-->
<Setter Property="Height" Value="22"/>
</Style>
wie man sehen kann Von der auskommentierten Zeile funktioniert auch nicht der Versuch, auf die numerische Konstante in der Style-Definition zu verweisen, sondern der "hardcoded" -Wert.
Jetzt habe ich es sieht, und ich denke, es liegt daran, dass der Typ mit der Height-Eigenschaft zugeordnet GridLength ist und es nicht schafft irgendwie nicht automatisch den doppelten Wert zu werfen, wenn sie von einer anderen Ressource comming ...
Das Problem ist, dass es keine Möglichkeit gibt, ein GridLength-Objekt aus XAML zu erstellen. Die Value-Eigenschaft ist schreibgeschützt. So etwas wie das nicht funktioniert entweder:
<Style x:Key="GridTableRow" TargetType="{x:Type RowDefinition}">
<Setter Property="Height">
<Setter.Value>
<GridLength Value="{StaticResource TableRowHeight}"/>
</Setter.Value>
</Setter>
</Style>
Gibt es eine Möglichkeit, diese Arbeit zu bekommen, oder soll ich nur vergessen, mit, dass konstant und benutzen Sie einfach den RowDefinition Stil mit dem fest codierten Wert anstelle der Konstante?
Der Vorschlag mit der '{Binding Source = ...}' Syntax funktioniert! Vielen Dank! – bjavor
Das Definieren des GridLength wie oben und in anderen Antworten funktioniert ebenfalls, hat aber den gleichen Nachteil, als müsste der gesamte RowDefinition-Stil mit einem fest codierten Wert definiert werden ... Sie können den Wert nicht mit dem System verknüpfen: double resource. (Zumindest habe ich keine Möglichkeit gefunden, von der Innenseite des Tags auf eine andere Ressource zu verweisen ...) Und es gibt kein "Value" -Attribut auf der GridLength ... – bjavor
EDIT: Der Grund, auf den ich beharre Verknüpfung mit dem doppelten Wert, da ich diesen Wert möglicherweise in einem anderen Kontext wiederverwenden muss, der keine GridLength- oder andere spezialisierte Ressource benötigt ... – bjavor