WPF Dockpanel 超出父级宽度

Jam*_*gle 5 c# wpf xaml

我试图在列表视图数据模板内创建一个停靠面板,该面板占据其父选项卡控件的所有可用宽度。我首先将我的 XAML 基于这个问题,从而得出以下结论:

<TabControl x:Name="tabControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <TabItem Header="Clipboard Buffer">
        <ListView Name="clipboardListView" ScrollViewer.CanContentScroll="True">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Border BorderThickness="2" BorderBrush="Black" CornerRadius="2,2,2,2">
                        <DockPanel Background="AliceBlue" Width="{Binding ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}}">
                            <TextBlock Text="{Binding Text}" DockPanel.Dock="Top" />
                        </DockPanel>
                    </Border>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </TabItem>

     ...
Run Code Online (Sandbox Code Playgroud)

这几乎可以工作,但是停靠面板似乎总是比选项卡控件中的可用空间宽一点,如您在此处看到的。

在此输入图像描述

我可以使用滚动条移动并看到我的停靠面板的末尾,正如人们所期望的那样......

在此输入图像描述

但是,如果我尝试重新调整窗体大小,则停靠面板仍略大于选项卡控件中的可用空间量。

在此输入图像描述

我在这里缺少什么?如何使我的停靠面板保持在其父选项卡控件的宽度内?

Pik*_*koh 4

尝试这个:

    <TabControl x:Name="tabControl" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        <TabItem Header="Clipboard Buffer">
            <ListView Name="clipboardListView" ScrollViewer.CanContentScroll="True" HorizontalContentAlignment="Stretch">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Border BorderThickness="2" BorderBrush="Black" CornerRadius="2,2,2,2" >
                            <DockPanel Background="AliceBlue" >
                                <TextBlock Text="asdfasdkfhkasdfkasdgfkjhdgfkuwegyfkwegfbkuweyfuksyadukfykweugbyfu" DockPanel.Dock="Top" />
                            </DockPanel>
                        </Border>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </TabItem>
    </TabControl>
Run Code Online (Sandbox Code Playgroud)

注意HorizontalContentAlignment="Stretch"ListView中的