在我的項目中有很多嵌套的網格。大多數行和列的寬度在XAML中定義爲「*」。
我想通過將其他行的高度設置爲0來擴展特定行(讓我們說Row1),並且我使用.ActualHeight屬性來獲取Row1的寬度,然後它不會給我實際的高度。
據我所知,這是因爲網格行和列的高度和寬度都設置爲渲染時間。
我在網上搜索和有人建議使用UpdateLayout()方法..但那也不適合我。
我無法發佈代碼片斷,因爲它代碼很長。
我在c#.net wpf中的項目。如何在渲染前獲取網格行的實際高度
1
A
回答
4
你需要做一個完整的佈局更新,那就是你需要調用措施,安排和UpdateLayout請:
//Make the framework (re)calculate the size of the element
_Element.Measure(new Size(Double.MaxValue, Double.MaxValue));
Size visualSize = _Element.DesiredSize;
_Element.Arrange(new Rect(new Point(0, 0), visualSize));
_Element.UpdateLayout();
_Element是一個FrameworkElement的(電網是一個)。
0
基於Baboon post的解決方案爲我工作。我需要對摺疊的FrameworkElement中的幻燈片進行動畫處理,不知道ActualHeight值的類似問題。
element.Visibility = Visibility.Visible;
element.InvalidateArrange();
element.UpdateLayout();
double elementHeight = element.DesiredSize.Height;
DoubleAnimation animation = new DoubleAnimation(0, elementHeight, TimeSpan.FromMilliseconds(animMilisec));
element.BeginAnimation(Rectangle.HeightProperty, animation);
現在在呈現元素之前,我有權訪問它的最終高度;
相關問題
- 1. 如何在渲染之前獲取StackPanel高度?
- 2. 獲取超網格的實際寬度
- 3. 獲取實際WPF網格寬度
- 4. simageid.width和高度不返回實際的渲染圖像大小
- 5. 表格的實際高度
- 6. 獲取實際的視圖高度
- 7. 在渲染後獲取libreoffice編寫器中表格行的高度
- 8. 如何將網格中元素的高度綁定到grid.row的實際高度
- 9. 我如何獲得堆疊面板的實際當前高度?
- 10. 如何獲得實際屏幕高度?
- 11. 用JavaScript獲取手機實際高度
- 12. 獲取實際屏幕高度(android)
- 13. GWT CellTable完成渲染後,如何獲取高度?
- 14. 如何在GWT中獲取國際化按鈕文本的渲染寬度?
- 15. 如何獲取SVG文本的實際高度(不是邊界框高度)
- 16. Silverlight獲取設置爲自動網格的實際寬度
- 17. 如何從JavaScript內計算HTML表格的渲染高度?
- 18. EXTJS網格渲染
- 19. 用jQuery獲取html元素的渲染高度
- 20. 獲取實際圖表的位置,寬度和高度
- 21. 如何獲取TextView的實際行數?
- 22. 如何獲取:在React渲染後的組件寬度
- 23. 獲取內容的實際高度在Silverlight彈出控制
- 24. 如何獲取特定網格的行或列寬度和高度值?
- 25. WPF文本框在渲染前的高度
- 26. 如何獲取當前元素高度?
- 27. 獲取渲染文本的高度,這相當於使用paint.measureText渲染的文本寬度
- 28. 如何訪問與高度元素的實際高度=自動
- 29. ListView的高度(實際)
- 30. 不同於Firefox中實際顯示高度的表格行高度值
工作就像一個魅力,謝謝你先生 – JohnChris 2017-05-12 08:06:40