我有一個由標籤和文本框組成的用戶控件。它位於scrollviewer中。如何獲取WPF usercontrol的可見部分的大小?
我正在繪製一個裝飾物,並且需要將裝飾物的大小調整爲控件的可見大小。
如何獲得控件的可見大小?
在下面的圖片中,綠色的矩形是裝飾者。您可以看到它正在右側的滾動條上繪製。
是否可以獲取渲染部分的大小,還是必須手動通過可視化樹來計算它?
編輯:更多的背景信息
我建立一個非常有限的窗體設計器。一切都在代碼中發生。裝飾器用於顯示當前選定的控件。
我有一個由標籤和文本框組成的用戶控件。它位於scrollviewer中。如何獲取WPF usercontrol的可見部分的大小?
我正在繪製一個裝飾物,並且需要將裝飾物的大小調整爲控件的可見大小。
如何獲得控件的可見大小?
在下面的圖片中,綠色的矩形是裝飾者。您可以看到它正在右側的滾動條上繪製。
是否可以獲取渲染部分的大小,還是必須手動通過可視化樹來計算它?
編輯:更多的背景信息
我建立一個非常有限的窗體設計器。一切都在代碼中發生。裝飾器用於顯示當前選定的控件。
我會在您的ScrollViewer中放置一個Canvas,並將所有用戶控件放置在畫布上。如果Adorner然後被畫在畫布上,則不必擔心它將畫在ScrollViewer上方。
您還可以使裝飾者在ScrollViewer下消失,而不是僅僅以此結束,因此您的用戶知道該控件超出了ScrollViewer的範圍。這就是我在WPF中所做的所有設計師所做的工作。
如果你只擔心裁剪裝飾器,那麼您可以在您的內容的AdornerDecorator。例如:
<ScrollViewer>
<AdornerDecorator>
<!-- Your content here -->
</AdornerDecorator>
</ScrollViewer>
或者您可以直接在您的UserControl中包含AdornerDecorator。
對不起,我添加了更多背景信息。目前一切都在代碼中發生。 – 2011-05-24 15:11:55
謝謝,使用畫布修復了我所有的問題:) – 2011-05-24 16:00:44