鉴于非常简单的WPF应用
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="800">
<Grid>
<ToolBar Height="50" >
<MenuItem Header="Test1" />
<MenuItem Header="Test2" />
<StackPanel Orientation="Horizontal">
<Separator />
<MenuItem Header="Test3" />
<MenuItem Header="Test4" />
<MenuItem Header="Test5" />
</StackPanel>
</ToolBar>
</Grid>
</Window>
分隔符元素缩小为零。如果我将分隔符放在StackPanel开始之前,它将显示出来。为什么会这样?是否可以在某处应用样式设置来避免这种情况?
最佳答案
StackPanel
以某种方式改变了Separator
的方向。请注意,如果您明确告诉Separator
宽度为20个单位,则Separator
将为水平线,而不是垂直线。这就是正在发生的事情的一部分。
如果将LayoutTransform
应用于Separator
,它将撤消StackPanel
所做的任何操作。
<Separator>
<Separator.LayoutTransform>
<RotateTransform
Angle="90" />
</Separator.LayoutTransform>
</Separator>
不过,我不了解是否需要
StackPanel
。关于在StackPanel中时,WPF ToolBar Separator缩小为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1274370/