Val*_*ion 4 wpf xaml mvvm wpf-controls
我有一个应用程序在用户控件之间切换很多,我希望它们延伸到窗口的最大大小,但有些东西阻止他们这样做,占用尽可能少的空间.
我注意到我在usercontrols中的组件调整大小(即锁定到控件底部的按钮保持原位,控件只是没有到达窗口的底部,按钮最终应该最终到达)并且我没有' t设置任何与大小相关的属性(我尝试了几个,但没有一个具有所需的效果).所以我假设问题在于显示控件的主要组件.这样设置如下:
<Window.Resources>
<DataTemplate DataType="{x:Type vm:MessageViewModel}">
<vw:MessageView/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:ConnectionsViewModel}">
<vw:ConnectionView/>
</DataTemplate>
...
</Window.Resources>
<Grid>
<ItemsControl ItemsSource="{Binding ViewModels}" Margin="0,20,0,0"/>
...
</Grid>
Run Code Online (Sandbox Code Playgroud)
我使用的解决方案归功于Erno:
更改
<ItemsControl ItemsSource="{Binding ViewModels}" Margin="0,20,0,0"/>
Run Code Online (Sandbox Code Playgroud)
至
<ItemsControl ItemsSource="{Binding ViewModels}" Margin="0,20,0,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
ItemsControl将项目放在ItemTemplate中,并将它们放在ItemsPanel中.
可以通过设置ItemsPanelTemplate来调整ItemsPanel.
默认情况下,ItemsPanel是StackPanel(垂直),StackPanels不会垂直分布行/拉伸项目.
所以你可以做的是在ItemsPanelTemplate中放置一个不同的控件,它可以根据需要拉伸和对齐项目.
| 归档时间: |
|
| 查看次数: |
543 次 |
| 最近记录: |