Dan*_*şar 15 wpf grid xaml expander gridsplitter
我想要一个像可调整大小的扩展器.我的基本想法是这样的:
<Grid HorizontalAlignment="Left">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="2" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Expander Grid.Column="0" ExpandDirection="Right">
...
</Expander>
<GridSplitter Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
...
</Grid>
Run Code Online (Sandbox Code Playgroud)
问题是:如果我移动网格分割器并折叠扩展器,我会得到一个很大的空白区域.如何使整个列崩溃?或者是否有另一种方法可以使扩展器"可调整大小"
H.B*_*.B. 20
不确定你想要完成什么,但我认为概念上Grid
应该是它的一部分Expander.Content
,这对你有用吗?
<Expander Header="Test" ExpandDirection="Right" HorizontalAlignment="Left" Background="LightBlue">
<Expander.Content>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="5"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Lorem ipsum dolor sit"/>
<GridSplitter Grid.Column="1" Width="5" ResizeBehavior="PreviousAndCurrent" ResizeDirection="Columns"/>
</Grid>
</Expander.Content>
</Expander>
Run Code Online (Sandbox Code Playgroud)
编辑:删除了第一列中的所有触发,因为它似乎没必要.
另外:为了使其垂直工作,HorizontalAlignment
必须将GridSplitter 设置为Stretch
,否则默认情况下它将具有零宽度(当然,所有其他特定于方向的也必须进行调整,但这很简单)
HorizontalAlignment是Microsoft .NET属性访问器,实际上是依赖项属性.这种特定的依赖属性经常在子类元素(尤其是控件)中以不同的方式设置其明显的"默认"值.[...]例如,Label控件的HorizontalAlignment的明显"默认"将为Left,即使Label直接从FrameworkElement继承HorizontalAlignment.这是因为该值在样式的控件模板中的Label默认样式中重置.