2011-05-24 57 views
3

我有一個由標籤和文本框組成的用戶控件。它位於scrollviewer中。如何獲取WPF usercontrol的可見部分的大小?

我正在繪製一個裝飾物,並且需要將裝飾物的大小調整爲控件的可見大小。

如何獲得控件的可見大小?

在下面的圖片中,綠色的矩形是裝飾者。您可以看到它正在右側的滾動條上繪製。

是否可以獲取渲染部分的大小,還是必須手動通過可視化樹來計算它?

編輯:更多的背景信息

我建立一個非常有限的窗體設計器。一切都在代碼中發生。裝飾器用於顯示當前選定的控件。

sample

回答

1

我會在您的ScrollViewer中放置一個Canvas,並將所有用戶控件放置在畫布上。如果Adorner然後被畫在畫布上,則不必擔心它將畫在ScrollViewer上方。

您還可以使裝飾者在ScrollViewer下消失,而不是僅僅以此結束,因此您的用戶知道該控件超出了ScrollViewer的範圍。這就是我在WPF中所做的所有設計師所做的工作。

+0

謝謝,使用畫布修復了我所有的問題:) – 2011-05-24 16:00:44

0

如果你只擔心裁剪裝飾器,那麼您可以在您的內容的AdornerDecorator。例如:

<ScrollViewer> 
    <AdornerDecorator> 
     <!-- Your content here --> 
    </AdornerDecorator> 
</ScrollViewer> 

或者您可以直接在您的UserControl中包含AdornerDecorator。

+0

對不起,我添加了更多背景信息。目前一切都在代碼中發生。 – 2011-05-24 15:11:55

相關問題