Đường ngang đơn giản (tôi nghĩ) trong WPF?


228

Tạo biểu mẫu nhập dữ liệu tương đối đơn giản và chỉ muốn tách một số phần nhất định bằng một đường ngang (không giống như thẻ HR trong HTML) kéo dài toàn bộ chiều dài của biểu mẫu.

Tôi đã thử điều này:

<Line Stretch="Fill" Stroke="Black" X2="1"/>

Vì điều khiển chính không phải là chiều rộng cố định, dòng này làm cho cửa sổ kéo dài đến toàn bộ chiều rộng của màn hình.

Có cách nào dễ dàng để làm điều này mà không sửa chữa độ rộng của điều khiển / cửa sổ cha mẹ của tôi không?


3
Câu trả lời là [ở đây] [1]. Tôi thích câu trả lời của mletterle. [1]: stackoverflow.com/questions/4011571/ Cách
Xếp chồng

Câu trả lời:


522

Làm thế nào về việc thêm điều này vào xaml của bạn:

<Separator/>

9
giải pháp tuyệt vời và một thẻ!

7
Tôi không hiểu làm thế nào đây là một giải pháp. Tôi thêm một dấu phân cách và tôi không thấy bất kỳ dòng nào. Cấu hình nào là cần thiết khi đặt dải phân cách trong bảng bố trí tiêu chuẩn, chẳng hạn như Lưới để hiển thị như quy tắc ngang?
jpierson

Tôi đồng ý, có vẻ như điều này không hoạt động đối với một số điều khiển
Justin Pihony

12
@jpierson Nếu bạn thêm nó vào lưới, có lẽ bạn cần gán nó cho một hàng và cột giống như bất kỳ điều khiển nào khác. Nếu không, nó có thể sẽ xuất hiện ở hàng / col đầu tiên, và bạn sẽ bỏ lỡ nó. (Nó hoạt động chính xác trên StackPanel.)
ANeves

5
Xin lưu ý rằng <Separator/>sẽ được đọc to bởi các trình đọc màn hình. Nếu <Separator/>được sử dụng để thực sự tách các nhóm mục trong UI, đây là một giải pháp hoàn hảo. Trường hợp việc sử dụng đường dây hoàn toàn là lý do thẩm mỹ, tôi khuyên bạn nên sử dụng <Line/>hoặc <Rectangle/>thay vào đó.
Simon Rozman

77

Tôi có cùng một vấn đề và cuối cùng đã chọn sử dụng một yếu tố Hình chữ nhật:

<Rectangle HorizontalAlignment="Stretch" Fill="Blue" Height="4"/>

Theo ý kiến ​​của tôi, nó có thể dễ dàng sửa đổi / hình dạng hơn một dấu phân cách. Tất nhiên đó Separatorlà một giải pháp rất dễ dàng và gọn gàng cho các phân tách đơn giản :)


2
Hoạt động trong Silverlight 5 trong khi Seperatorkhông.
ΩmegaMan

14

Sử dụng Đường viền có chiều cao 1 và không đặt Chiều rộng (nghĩa là Chiều rộng = Tự động, Ngang ngang = Kéo dài, mặc định)


2
Dù sao nó cũng tiện cho máy phân tách dọc:<Border Width="1" Margin="2" Background="#8888"/>
Qwertie

8

Đối với bất cứ ai khác đấu tranh với điều này: bình luận của Qwertie làm việc tốt cho tôi.

<Border Width="1" Margin="2" Background="#8888"/>

Điều này tạo ra một seperator dọc mà bạn có thể phù hợp với nhu cầu của bạn.


3
To draw Horizontal 
************************    
<Rectangle  HorizontalAlignment="Stretch"  VerticalAlignment="Center" Fill="DarkCyan" Height="4"/>

To draw vertical 
*******************
 <Rectangle  HorizontalAlignment="Stretch" VerticalAlignment="Center" Fill="DarkCyan" Height="4" Width="Auto" >
        <Rectangle.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform/>
                <RotateTransform Angle="90"/>
                <TranslateTransform/>
            </TransformGroup>
        </Rectangle.RenderTransform>
    </Rectangle>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.