如何更改WPF“<separator>”的高度?</separator>

时间:2013-10-08 09:48:02

标签: wpf xaml menu styles height

我在普通菜单(而不是上下文菜单)的列表菜单项中使用wpf。

使用以下样式时,不会绘制分隔符:

<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="{x:Type Separator}">
    <Setter Property="Height" Value="2" />
</Style>

高度的值必须至少为12,但是与menuitems的距离太大。

这里发生了什么?这合乎逻辑吗?有解决方案吗?

3 个答案:

答案 0 :(得分:2)

您可以使用Margin属性来调整Separator元素的大小和/或空间:

<StackPanel>
    <Button Width="100" Content="Click me" />
    <Separator Margin="50,20" />
    <Button Width="100" Content="Click me too" />
</StackPanel>

通常,其长度将填充可用区域,而其宽度将保持在一个像素,反之亦然,具体取决于其方向。这会影响其Width

<StackPanel>
    <Button Width="100" Content="Click me" />
    <Separator Margin="20" Width="20" />
    <Button Width="100" Content="Click me too" />
</StackPanel>

这不会影响此方向的行的Height,但影响其占用的总空间:

<StackPanel>
    <Button Width="100" Content="Click me" />
    <Separator Margin="20" Height="50" />
    <Button Width="100" Content="Click me too" />
</StackPanel>

如果您想要更多地控制该行,那么我建议您改为使用Line Class

答案 1 :(得分:1)

只需在Y轴上缩放分隔符

 <Separator>
    <Separator.RenderTransform>
        <ScaleTransform ScaleY="3" />
     </Separator.RenderTransform>
 </Separator>

这会将分隔符的高度设置为原始高度的3倍。

查看此内容: How to: Scale an Element

答案 2 :(得分:0)

使用负边距:

<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="{x:Type Separator}">
    <Setter Property="Margin" Value="-4,0,-3,0" />
</Style>