简单(我认为)WPF中的水平线?

Phi*_*ler 216 wpf xaml wpf-controls

创建一个相对简单的数据输入表单,只想用水平线(与HTML中的HR标记不同)将某些部分分开,这些部分会拉伸表单的全长.

我试过这个:

<Line Stretch="Fill" Stroke="Black" X2="1"/>
Run Code Online (Sandbox Code Playgroud)

由于父控件不是固定宽度,因此该行会使窗口拉伸到屏幕的整个宽度.

有没有一种简单的方法可以在不修复父控件/窗口宽度的情况下执行此操作?

Ade*_*zah 486

如何将此添加到您的xaml:

<Separator/>
Run Code Online (Sandbox Code Playgroud)

  • @jpierson如果将其添加到网格中,则可能需要像任何其他控件一样将其分配给行和列.否则它可能会出现在第一行/ col中,你会错过它.(它在StackPanel上正常工作.) (11认同)
  • 精彩的解决方案和一个标签 (9认同)
  • 我不明白这是一个解决方案.我添加一个分隔符,我没有看到任何行.将分隔符放置在标准布局面板(如网格)中以使其显示为水平规则时,需要什么配置? (7认同)
  • 请注意,屏幕阅读器会大声读出`&lt;Separator /&gt;`。如果`&lt;Separator /&gt;`用于在UI中实际分离项目组,那么这是一个完美的解决方案。在纯粹出于美学原因使用线条的情况下,建议使用`&lt;Line /&gt;`或`&lt;Rectangle /&gt;`代替。 (3认同)
  • 这在 .Net Core 3.1 wpf 应用程序中不可用。 (2认同)

Der*_*ter 71

我有同样的问题,最终选择使用Rectangle元素:

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

在我看来,修改/形状比分隔符更容易一些.当然,Separator对于简单的分离来说,这是一个非常简单和简洁的解决方案:)

  • 适用于Silverlight 5,而"Seperator"则不适用. (2认同)

Ana*_*tts 13

使用高度为1的边框,不要设置宽度(即宽度=自动,水平对齐=拉伸,默认值)

  • 无论如何,它对于垂直分隔符都很方便:`&lt;Border Width =“ 1” Margin =“ 2” Background =“#8888” /&gt;` (2认同)

小智 7

对于其他任何挣扎于此的人:上面的"Qwertie's"评论对我来说效果很好.

<Border Width="1" Margin="2" Background="#8888"/>
Run Code Online (Sandbox Code Playgroud)

这样就形成了一个垂直分离器,可以满足您的需求.