如何阻止DockPanel中的指定元素随Expander展开而拉伸
解决方案
要实现Expander展开时前两个Button不被拉伸,核心是让这两个Button仅占据自身内容所需宽度,而非填充DockPanel的水平空间,以下是两种简洁规范的实现方式:
方式一:直接设置Button的水平对齐
给前两个Button添加HorizontalAlignment="Left"属性,强制控件仅按自身内容宽度布局,不随DockPanel宽度拉伸:
<Grid> <DockPanel HorizontalAlignment="Left"> <Button Content="AAAAA" DockPanel.Dock="Top" HorizontalAlignment="Left"/> <Button Content="AAAAA" DockPanel.Dock="Top" HorizontalAlignment="Left"/> <Expander> <Button Content="AAAAAAAAAA"/> </Expander> </DockPanel> </Grid>
方式二:用StackPanel包裹Button
将前两个Button放入垂直方向的StackPanel中,StackPanel默认子元素水平对齐为Left,天然避免拉伸,同时让布局结构更规整:
<Grid> <DockPanel HorizontalAlignment="Left"> <StackPanel DockPanel.Dock="Top" Orientation="Vertical"> <Button Content="AAAAA"/> <Button Content="AAAAA"/> </StackPanel> <Expander> <Button Content="AAAAAAAAAA"/> </Expander> </DockPanel> </Grid>
内容的提问来源于stack exchange,提问作者OrLevi
相关产品推荐
相关产品推荐

