是否有一種方法可以綁定1個元素高度上的3個元素的高度?WPF將元素的高度綁定到3個元素高度的總和
-1
A
回答
4
儘管您需要使用實現IMultiValueConverter的轉換器才能使用它們,但您可以使用MultiBinding將屬性綁定到多個綁定。在這種情況下,您可能希望綁定到Height而不是ActualHeight,以便在執行佈局後獲取該值。
你會這樣定義一個轉換器:
public class SumConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
return values.Cast<double>().Sum();
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
return null;
}
}
然後做這樣的事情在XAML:
<Control Name="C">
<Control.Resources>
<local:SumConverter x:Key="SumConverter"/>
</Control.Resources>
<Control.Height>
<MultiBinding Converter="{StaticResource SumConverter}">
<Binding Path="ActualHeight" ElementName="A" />
<Binding Path="ActualHeight" ElementName="B" />
</MultiBinding>
</Control.Height>
</Control>
如果你只是想獲得的控制是在高度一個固定的比例,您可能想要使用具有星形尺寸的網格或具有共享尺寸組的多個網格。像這樣的東西可能會工作:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<Button Grid.Row="0">A</Button>
<Button Grid.Row="1">B</Button>
<Button Grid.Row="2">C</Button>
</Grid>
+0
+1瞭解可用選項的完整說明。而且,對於OP,除了他的問題外沒有提供任何內容:不是「我所嘗試過的」,也不是「謝謝」,沒有任何內容。 – zazkapulsk
相關問題
- 1. 將元素的高度設置爲%高度的元素高度
- 2. 元素高度
- 3. 確定元素的高度
- 4. 如何將網格中元素的高度綁定到grid.row的實際高度
- 5. css元素高度減去高度變化的元素的高度
- 6. li元素不擴展到ul元素的高度當一個li元素推高ul的高度
- 7. 如何將元素的高度複製到另一個元素?
- 8. Safari高度100%元素內的最大高度元素
- 9. 獲取每個父元素的最高子元素的高度
- 10. 獲取元素的總高度?
- 11. webkit - html元素的寬度和高度
- 12. 獲取元素的寬度和高度
- 13. Jquery將嵌套元素的高度設置爲其包含元素的高度
- 14. 元素#1高度變化,元素#2高度變化
- 15. Slidingowned元素的高度
- 16. 匹配元素的高度
- 17. 獲得元素的高度
- 18. MultiCell元素的FPDF高度
- 19. jQuery元素的高度
- 20. 如何設置元素的高度以匹配另一個元素的高度?
- 21. CSS更改元素高度和寬度
- 22. 定位有限高度(最大高度)的固定元素
- 23. 獲取未顯示元素的子元素的寬度/高度
- 24. 使僞元素的高度與它所連接的元素的高度相同
- 25. 確定Django模板元素的高度
- 26. 固定元素的設置高度
- 27. Bootstrap:父元素的固定div高度
- 28. 隱藏元素內的跨度高度
- 29. 方法元素的寬度/高度
- 30. 將元素的高度設置爲屏幕高度 - Angular2
你試過什麼嗎? –
如果您嘗試* layout *元素,那麼只需使用'Grid',它就是專門爲此設計的。 – Sinatr
如果你有你的答案,然後將其標記爲接受答案;這對其他人會有幫助。 – Ahmed