2010-06-01 81 views
2

UserControl,我想要禁用定義高一級的ScrollViewer。我的情況看起來是這樣的:是否可以從ScrollViewer內部禁用ScrollViewer?

<!-- ... --> 
<ScrollViewer VerticalScrollBarVisibility="Auto" 
       HorizontalScrollBarVisibility="Disabled"> 
    <custom:MyUserControl ... /> 
</ScrollViewer> 

現在,我想從MyUserControl內禁止ScrollViewer。這可能嗎?

背景:
我已經定義了,我對每個項目的內容自動添加一個ScrollViewer自定義TabControl風格。但是,在一種情況下,我不想使用該ScrollViewer,而是將內容大小設置爲可用空間,而在其他所有情況下,我都希望使用ScrollViewer。有任何想法嗎?當然,我可以手動添加一個ScrollViewer到每個標籤項目,除了一個項目,但這不是我想要的。

回答

0

在代碼中,你應該能夠做到這一點是這樣的:

try 
{ 
    ((ScrollViewer)Parent).IsEnabled = false; 
} 
catch (Exception exc) 
{ 
    MessageBox.Show(exc.Message); 
} 

我也XAML中使用觸發器之前完成它,如果你需要做的這種方式讓我知道,我可以張貼代碼

+0

感謝您的回答。不幸的是,在我的情況下,代碼隱藏不是一種選擇。你如何在XAML中做到這一點?如果你可以發佈代碼會很好。 – gehho 2010-06-07 14:45:32

+0

再次閱讀您的問題,我認爲我以前所做的並不能解決您的問題。只需禁用ScrollViewer將不會更改任何內部項目的佈局,它只是不會滾動,所以它不會將內容大小設置爲可用空間。 這聽起來像你可能能夠定義另一個沒有ScrollViewer的TabControl風格,而不是有一個禁用的ScrollViewer。 – Oliver 2010-06-08 05:33:45