wpf - 如何防止 itemsControl 项目内容拉伸(stretch)到最宽项目的宽度

标签 wpf xaml

有没有办法让 itemsControl 项目内容(在本例中为边框)不拉伸(stretch)以适应最宽项目的宽度?

看这里:

enter image description here

CURLIN 是最宽的项目。 RAGAIN 和 WALKUP 较短,但拉伸(stretch)到 CURLIN 的宽度,无论我尝试使用任何 itemsPanel 或 itemTemplate。这有帮助吗?

代码:

<ItemsControl ItemsSource="{Binding CarbonCopyRecipients}">
    <ItemsControl.ItemsPanel>
         <ItemsPanelTemplate>
               <StackPanel Orientation="Vertical" HorizontalAlignment="Left"/>
         </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
         <DataTemplate >
               <Border ...... />
         </DataTemplate >
    </ItemsControl.ItemTemplate>
</ItemsControl>

最佳答案

好吧,既然我想我对你所追求的东西的假设是正确的,当然我是个贪婪的人,现在开始吧;

您的 StackPanel 的子元素将填充由它包含的最大对象设置的可用空间,除非您告诉他们不要明确地或已经有一个模板集来做同样的事情。

因此 ItemTemplate 最外层容器上的 Horizo​​ntalAlignment="Left"(在本例中为 Border)将告诉它拥抱侧而不是拉伸(stretch)以适应它可能消耗的可用空间。

不那么乏味的冗长版本:告诉窃听器只占用它需要的空间。 :)

希望对您有所帮助。

关于wpf - 如何防止 itemsControl 项目内容拉伸(stretch)到最宽项目的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21395847/

相关文章:

c# - 如何将 BitmapImage 从后台线程传递到 WPF 中的 UI 线程?

wpf - 我们可以通过 LAN Access Db 共享 Silverlight 应用程序吗

c# - 将内部控件内容属性公开为自己的[用户控件]

wpf - 阴影出现在文本 block 本身而不是单个文本字符周围

c# - 更改 TextBox 文本时 ViewModel 属性未更新

c# - 如何复制包含溢出内容的 FrameworkElement?

c# - WPF 使用动画来移动组件

c# - 无法使用 DataTemplate WPF 将 InputBinding 应用于整个 ListBoxItem

wpf - Ninject ActivationBlock 作为工作单元

.net - 在 WPF MVVM 中绑定(bind)到没有代理对象的派生属性