为什么这个dockpanel不能正确地停靠它的子组件

本文关键字:组件 停靠 正确地 dockpanel 不能 为什么 | 更新日期: 2023-09-27 18:04:41

我有这个xaml:

 <Expander DockPanel.Dock="Left"  IsExpanded="True">
      <Expander.Header>
         <DockPanel LastChildFill="False" >
              <TextBlock DockPanel.Dock="Left" Text="{Binding Title}"/>
              <Button  DockPanel.Dock="Right" Width="10" Style="{StaticResource TransparentButton}" cal:Message.Attach="RemoveFromList($dataContext)">
               </Button>
           </DockPanel>
      </Expander.Header>  
</Expander>

但是当它显示时,我得到的按钮就在textblock旁边的左边。

为什么不向右停靠?

为什么这个dockpanel不能正确地停靠它的子组件

我在这里没有看到对接问题,按钮在DockPanel的右边缘。只是DockPanel具有最小的所需宽度,因此所有内容都挤在一起。您可以添加一些背景,以帮助您看到尺寸。

<Grid Background="Yellow">
    <Expander DockPanel.Dock="Left" IsExpanded="True">
          <Expander.Header>
             <DockPanel LastChildFill="False" Background="Red" Width="200">
                  <TextBlock DockPanel.Dock="Left" Text="{Binding Title}"/>
                  <Button  DockPanel.Dock="Right" Width="10" />
               </DockPanel>
          </Expander.Header>  
    </Expander>
</Grid>

请注意,我在DockPanel内部添加了Width设置,以显示Button在最右边。