我在普通菜单(而不是上下文菜单)的列表菜单项中使用wpf。
使用以下样式时,不会绘制分隔符:
<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}" TargetType="{x:Type Separator}">
<Setter Property="Height" Value="2" />
</Style>
高度的值必须至少为12,但是与menuitems的距离太大。
这里发生了什么?这合乎逻辑吗?有解决方案吗?
答案 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>