首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何添加垂直分隔符?

如何添加垂直分隔符?
EN

Stack Overflow用户
提问于 2012-11-27 21:11:18
回答 10查看 134.3K关注 0票数 133

我想向网格添加垂直分隔符,但我只能找到水平分隔符。有没有一个属性,你可以输入分隔线应该是水平还是垂直?

我找了很多,但没有找到一个简短而简单的解决方案。

我使用的是.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>
EN

回答 10

Stack Overflow用户

发布于 2014-04-25 06:25:50

这应该完全符合作者的要求:

<StackPanel Orientation="Horizontal">
    <Separator Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />            
</StackPanel>

如果需要水平分隔符,请将StackPanelOrientation更改为Vertical

票数 216
EN

Stack Overflow用户

发布于 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>
票数 56
EN

Stack Overflow用户

发布于 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尝试呈现控件的布局过程之后。

您可以阅读有关LayoutTransformRenderTransform herehere之间差异的更多信息

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13584998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档