我需要浮出ListBox
中的某些內容,如DataTemplate
中ListBox.ItemTemplate
的規定。我正在使用RenderTransform
,但內容會被限制在ListBox
的邊界上。對於整個視覺樹,ClipToBounds
是False
。WPF裁剪即使不需要裁剪 - 如何關閉它?
我已經讀過WPF內部執行一些裁剪的地方,即使沒有用專用裁剪屬性指定。我也發現使用Canvas
有時可以解決剪切問題,但它在這裏沒有幫助。
我該如何克服這個問題?這裏是我想修復的一些XAML。請注意矩形的整個左邊部分缺失。
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Rectangle Fill="Red" Stroke="Green" StrokeThickness="4" Width="100" Height="50">
<Rectangle.RenderTransform>
<TranslateTransform X="-50" />
</Rectangle.RenderTransform>
</Rectangle>
</DataTemplate>
</ListBox.ItemTemplate>
42
</ListBox>
你似乎發現了!但我需要`ScrollViewer`在原來的位置。你知道ScrollVeiwer的內部實現中有什麼特別的東西傷害了我嗎?這是可以在派生類中重寫的東西嗎?我曾經在某處讀過`GetLayoutClip`是罪魁禍首,但我無法讓它按我的方式工作。 – wpfwannabe 2011-02-01 07:09:39
@wpfwannabe:更新了我的答案。你說得對,`GetLayoutClip`就是問題所在。不幸的是,這次它在一個Sealed類(`ScrollContentPresenter`)中,所以你不能從它派生出來。據我所知,這需要很多工作才能實現這個目標 – 2011-02-01 10:20:55