Tôi cần làm nổi bật một số nội dung ra khỏi số ListBox
như được chỉ định trong một DataTemplate
cho số ListBox.ItemTemplate
. Tôi đang sử dụng RenderTransform
nhưng nội dung bị cắt bớt trên các ranh giới ListBox
. ClipToBounds
là False
cho toàn bộ cây thị giác.Cắt WPF ngay cả khi không cần cắt bớt - làm thế nào để tắt?
Tôi đã đọc ở đâu đó rằng WPF thực hiện một số thao tác cắt ngay cả khi không có quy tắc nào được chỉ định với các thuộc tính cắt riêng. Tôi cũng đã phát hiện ra rằng sử dụng Canvas
đôi khi có thể chữa được vấn đề cắt nhưng nó không giúp đỡ ở đây.
Làm cách nào để khắc phục sự cố này? Đây là một số XAML mà tôi muốn sửa chữa. Xin lưu ý rằng toàn bộ phần bên trái của hình chữ nhật bị thiếu.
<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>
Bạn dường như được tại chỗ trên! Nhưng tôi cần 'ScrollViewer' ở vị trí ban đầu của nó. Bạn có biết những gì là đặc biệt trong thực hiện nội bộ 'ScrollVeiwer' làm tổn thương tôi? Đây có phải là cái gì đó có thể được overriden trong một lớp học có nguồn gốc? Tôi đã đọc ở đâu đó rằng 'GetLayoutClip' là thủ phạm nhưng tôi không thể làm cho nó hoạt động theo cách của tôi. – wpfwannabe
@wpfwannabe: Đã cập nhật câu trả lời của tôi. Bạn đúng rằng 'GetLayoutClip' là vấn đề. Thật không may, lần này nó nằm trong một lớp Sealed ('ScrollContentPresenter'), do đó bạn không thể lấy được từ nó. Theo như tôi biết, nó sẽ mất rất nhiều công việc để có được điều này đi –
Câu trả lời của bạn là tuyệt vời! Giúp đỡ nhiều! Cảm ơn nhiều! Trong thời gian đó, tôi đã sắp xếp lại bố cục của mình khác với một loại 'ListBoxItem' tách cho phép tôi hiển thị nội dung nổi bên trong' ListBox' và do đó tôi không cần toàn bộ malarkey 'ScrollViewer' nữa. Hầu hết mọi người có thể tìm ra một giải pháp khác cho cùng một vấn đề.Lần này tôi đã phải thay đổi khá nhiều mẫu của mình để có được những thứ để làm việc như mong đợi nhưng có vẻ dễ dàng hơn nhiều so với việc phải tạo ra 'ScrollViewer' của riêng tôi. Cảm ơn một lần nữa! – wpfwannabe