我想向网格添加垂直分隔符,但我只能找到水平分隔符。有没有一个属性,你可以输入分隔线应该是水平还是垂直?
我找了很多,但没有找到一个简短而简单的解决方案。
我使用的是.Net Framework4.0和Visual Studio Ultimate 2012。
如果我试图将水平分隔符旋转90度,它将失去“停靠”到其他组件的能力。
旋转后的分隔符如下所示:
<Separator HorizontalAlignment="Left" Height="100" Margin="264,26,0,0" VerticalAlignment="Top" Width="100" RenderTransformOrigin="0.5,0.5">
<Separator.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Separator.RenderTransform>
</Separator>
发布于 2014-04-25 06:25:50
这应该完全符合作者的要求:
<StackPanel Orientation="Horizontal">
<Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
</StackPanel>
如果需要水平分隔符,请将StackPanel
的Orientation
更改为Vertical
。
发布于 2014-03-20 18:56:57
这并不完全是作者所要求的,但它仍然非常简单,并且完全按照预期工作。
Rectangle完成这项工作:
<StackPanel Grid.Column="2" Orientation="Horizontal">
<Button >Next</Button>
<Button >Prev</Button>
<Rectangle VerticalAlignment="Stretch" Width="1" Margin="2" Stroke="Black" />
<Button>Filter all</Button>
</StackPanel>
发布于 2012-11-27 23:11:23
在过去,我使用的样式是here
<Style x:Key="VerticalSeparatorStyle"
TargetType="{x:Type Separator}"
BasedOn="{StaticResource {x:Type Separator}}">
<Setter Property="Margin" Value="6,0,6,0"/>
<Setter Property="LayoutTransform">
<Setter.Value>
<TransformGroup>
<TransformGroup.Children>
<TransformCollection>
<RotateTransform Angle="90"/>
</TransformCollection>
</TransformGroup.Children>
</TransformGroup>
</Setter.Value>
</Setter>
</Style>
<Separator Style="{DynamicResource VerticalSeparatorStyle}" />
您需要在LayoutTransform
而不是RenderTransform
中设置变换,以便变换在布局过程中发生,而不是在渲染过程中发生。布局过程发生在WPF尝试对控件进行布局并计算出每个控件占用了多少空间时,而呈现过程发生在WPF尝试呈现控件的布局过程之后。
https://stackoverflow.com/questions/13584998
复制相似问题