Tôi có phong cách sau đây theo quy định tại App.xaml tôiNgăn chặn một TextBox từ việc mở rộng theo chiều ngang trong WPF
<Style x:Key="textBoxMultiline" TargetType="{x:Type TextBox}" >
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="HorizontalScrollBarVisibility" Value="Hidden" />
<Setter Property="MinHeight" Value="50" />
<Setter Property="TextWrapping" Value="Wrap" />
</Style>
Và trong suốt giải pháp chúng tôi đang sử dụng nó trên mỗi hộp văn bản cần có một văn bản ngắn gọn.
<TextBox x:Name="textBoxDescription" Grid.Row="2" Grid.Column="1" Style="{DynamicResource textBoxMultiline}" />
Tất cả mọi thứ hoạt động tốt, nhưng sau đó các khách hàng phàn nàn về một số lĩnh vực được corped trên màn hình lớn hơn với độ phân giải thấp hơn, vì vậy tôi đặt một ScrollViewer
vào một trong các nút cây thị giác cao để ngăn chặn sự corping.
<ScrollViewer Height="Auto" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
...
</ScrollViewer>
Kỳ lạ, kiểu TextBox
es với kiểu trên bắt đầu mở rộng sang bên phải thay vì gói văn bản.
Có cách nào để ngăn chặn điều này mà không xóa ScrollViewer
không?
Tôi đang sử dụng phong cách với textbox của độ rộng khác nhau. Tôi đã kinda tìm kiếm một giải pháp chung chung hơn như ghi đè các mẫu hộp văn bản để bao gồm một cái gì đó có chiều rộng cố định và sau đó ràng buộc các textbox actualwidth đến chiều rộng phần tử mới đó. Điều này có vẻ rất nhiều công khai, nhưng tôi đã tìm kiếm một cái gì đó mà chỉ tiến hóa thay đổi phong cách TextBox. – dcarneiro
Điều bạn đang làm có phần mâu thuẫn. Bạn sẽ có hộp văn bản giới hạn chiều rộng, sau đó bạn sẽ đặt nó trong một scrollviewer có một không gian ngang không bị chặn ("Auto"). Bạn có thể giải quyết nó, nhưng không có cách nào nói chung. Bạn nên tạo một ràng buộc từ ActualWidth của scrollviewer và chiều rộng (Max) của hộp văn bản. Vấn đề là bạn phải thêm một bộ chuyển đổi, để đưa vào tài khoản các offsets và các chất liệu khác (rất khó chịu như đối với tôi). –
Thanh cuộn ngang là một hack vì các điều khiển khác bị cắt trên màn hình độ phân giải thấp. Tôi đã cố gắng để ràng buộc chiều rộng hộp văn bản đến một phần tử có cùng độ rộng (một hộp văn bản khác trên cùng một ô lưới có cùng kiểu nhưng ẩn) và nó hoạt động. Nhưng sau đó tôi thấy rằng TextBlock nơi thông tin cũng sẽ mở rộng theo chiều ngang thay vì gói văn bản. Điều này cho tôi biết rằng thanh cuộn ngang được ưu tiên hơn thuộc tính TextWrapping. Vì vậy, tôi đoán tôi phải thiết kế lại giao diện người dùng để hỗ trợ độ phân giải màn hình thấp. – dcarneiro