的RowDefinition身高在我的WPF風格我已經定義了一個標準的網格行高度我想申請到好幾個地方,像這樣:設置從靜態資源
<system:Double x:Key="TableRowHeight">22</system:Double>
然而,當我想這是行不通的應用此像這樣:
<RowDefinition Height="{StaticResource TableRowHeight}"/>
相反,我需要建立一個完整的風格,如:
<Style x:Key="GridTableRow" TargetType="{x:Type RowDefinition}">
<!--<Setter Property="Height" Value="{StaticResource TableRowHeight}"/>-->
<Setter Property="Height" Value="22"/>
</Style>
可以看出從註釋行中嘗試引用Style定義中的數字常量也不起作用,但「硬編碼」值確實有效。
現在,我看着它,我想這是因爲隨着高度屬性相關聯的類型是GridLength,它並不會自動管理,自動施放從另一個正在添加資源時,雙值...
問題是,似乎沒有從XAML創建GridLength對象的方法。價值邏輯是隻讀的。因此,像這樣無法正常工作或:
<Style x:Key="GridTableRow" TargetType="{x:Type RowDefinition}">
<Setter Property="Height">
<Setter.Value>
<GridLength Value="{StaticResource TableRowHeight}"/>
</Setter.Value>
</Setter>
</Style>
有沒有辦法得到這個工作,或者我應該忘記使用恆定的,只是使用的RowDefinition風格的硬編碼值不是恆定的?
使用'{Binding Source = ...}'語法的建議可行!謝謝! – bjavor
按照上面建議的和其他響應中的定義GridLength的方式也適用,但是具有與必須使用硬編碼值定義整個RowDefinition樣式相同的缺點...您無法將值鏈接到系統:double資源。 (至少我還沒有找到一種方法來引用標籤內的另一個資源...)並沒有「價值」屬性暴露在GridLength ... – bjavor
編輯:我堅持的原因鏈接到雙重值,因爲我可能需要在其他上下文中重用該值,而不需要GridLength或其他專用資源...... – bjavor