c# - WPF Dockpanel 超出父级的宽度

标签 c# wpf xaml

我正在尝试在 ListView 数据模板中创建一个停靠面板,该模板占用其父选项卡控件的所有可用宽度。我首先将我的 XAML 基于 this question因此想出了这个:

<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>

     ...

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

enter image description here

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

enter image description here

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

enter image description here

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

最佳答案

试试这个:

    <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>

注意 ListView 中的 Horizo​​ntalContentAlignment="Stretch"

关于c# - WPF Dockpanel 超出父级的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747422/

相关文章:

c# - 使用 MVVM 在 DataGrid 中级联 ComboBox

c# - 弯曲并遵循某些路径几何形状的 WPF 动画

c# - 这是什么系统颜色?

silverlight - Silverlight/xaml 中通知的图标徽章覆盖

c# - ViewModel在导航Back Prism MVVM Windows Phone 8.1 C#上调用

c# - 我可以将 TimeSpan 用作具有默认值的可选参数吗?

c# - 不同选定项目的 WPF 组合框背景

c# - quartz : Does not implement interface member

c# - 在登录 ASP.NET MVC 时验证用户身份

c# - 动画窗口调整大小(宽度和高度)C# WPF