c# - WrapPanel 与 ItemsControl 一起使用时不会换行

标签 c# wpf itemscontrol itemtemplate wrappanel

我有一个 WrapPanel,我正在用 UserControls 填充我的 ViewModel:

<WrapPanel Width="250" Orientation="Horizontal" Margin="3">
   <ItemsControl ItemsSource="{Binding PlaceableObjectsContent}">
      <ItemsControl.ItemTemplate>
          <DataTemplate DataType="{x:Type local:PlaceableObjectViewModel}">
              <local:PlaceableObjectUserControl>
                 <local:PlaceableObjectUserControl.InputBindings>
                     <MouseBinding MouseAction="LeftClick"
                                                  Command="{Binding DataContext.OnPlaceableObjectClicked, RelativeSource={RelativeSource AncestorType=ItemsControl}}"
                                                  CommandParameter="{Binding}"/>
                 </local:PlaceableObjectUserControl.InputBindings>
              </local:PlaceableObjectUserControl>
          </DataTemplate>
      </ItemsControl.ItemTemplate>
   </ItemsControl>
</WrapPanel>

当我用随机控件填充它们时,一切正常!我已经阅读了一些有关使用 ItemTemplate 导致的问题的内容!? 如果这是真的,我该如何处理?

谢谢

最佳答案

您将单个 ItemsControl 放入 WrapPanel 中。那不会有任何作用。如果您希望 ItemsControl 使用 WrapPanel 来托管其自己的项目,请按以下步骤操作:

<ItemsControl 
    ItemsSource="{Binding PlaceableObjectsContent}"
    Width="250"
    Margin="3"
    >
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <!-- etc. -->

请注意,必须有一些东西限制 ItemsControl 的宽度才能正常工作:它必须受到其父项或网格列的大小的限制,甚至通过设置 ItemsControl 元素本身的 Width 或 MaxWidth 属性来限制,直接或通过样式。

关于c# - WrapPanel 与 ItemsControl 一起使用时不会换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581919/

相关文章:

c# - 选择 WPF 随机画笔颜色

xaml - 在 ItemsControl 上滚动

c# - 如何访问 SerialPort.Flush() 和 SerialPort.Finalize() 函数

c# - 为什么此代码在 C# 中无效?

c# - SSH.NET 中的 MySQL 端口转发 - 尝试以访问权限禁止的方式访问套接字

c# - WPF ItemsControl 拉伸(stretch) ButtonContent 的 FontSize

.net - 将滚动条放在项目控件中包含的环绕面板上

c# - 如何在 ASP.NET 中使用时区?

c# - 从浏览器控制我的应用程序?

c# - 使用 Dispatcher.Invoke 从非主线程更改 WPF 控件