DockPanel.Dock =“右”不适用于最大化窗口的单一控件?

我正在使用DockPanel.Dock在特定位置(即左/右)进行对接控制。 问题是我的控件没有根据DockPanel.Dock位置对接。

下面是使用DockPanel.Dock="Right"进行单一控制的代码

       

在此处输入图像描述 DockPanel.Dock="Right"多个控件的代码

        

在此处输入图像描述

期待输出:

在此处输入图像描述

任何想法或想法将不胜感激。 提前致谢

您应该使用LastChildFill属性:

         

发生这种情况是因为DockPanelLastChildFill属性默认为true 。 要获得所需的输出, 请将其设置为false

根据MSDN

如果将LastChildFill属性设置为true(默认设置),则DockPanel的最后一个子元素始终填充剩余空间,而不管您在最后一个子元素上设置的任何其他停靠值。 要将子元素停靠在另一个方向上,必须将LastChildFill属性设置为false,并且还必须为最后一个子元素指定显式停靠方向。

使用DockPanel的示例UI和XAML:

    Dock = "Top"   Dock = "Top"   Dock = "Bottom"   Dock = "Left"   This content will "Fill" the remaining space    

XAML样本

如果您不想要上述行为,请在上面的XAML示例中设置LastChildFill =“False”并观察结果。

如下所述,添加Horizo​​ntalAlignment =“Right”