【发布时间】:2009-11-20 16:19:03
【问题描述】:
有没有办法固定 wpf 停靠面板?我在网上搜索过,但没有找到任何允许这样做的功能。我想要的是锁定停靠面板停靠区域的大小。例如,我希望正确区域的宽度始终保持锁定。我所看到的唯一解决方案是 3rd 方控件。有谁知道限制这些区域宽度的方法?提前谢谢。
【问题讨论】:
有没有办法固定 wpf 停靠面板?我在网上搜索过,但没有找到任何允许这样做的功能。我想要的是锁定停靠面板停靠区域的大小。例如,我希望正确区域的宽度始终保持锁定。我所看到的唯一解决方案是 3rd 方控件。有谁知道限制这些区域宽度的方法?提前谢谢。
【问题讨论】:
您可以设置正在停靠的控件的 MaxWidth 属性。
【讨论】:
根据您的补充说明,您的布局如下:
<DockPanel>
<ItemsControl DockPanel.Dock="Left"/>
<StackPanel DockPanel.Dock="Right"/>
</DockPanel>
我建议的第一件事是将LastChildFill="False" 添加到DockPanel,这样你的左右部分就变得不相关了。
然后你必须决定当ItemsControl 中的项目数量增加时会发生什么。您可以使水平滚动条出现,使它们环绕,等等。
【讨论】:
是的,我已经设置了 LastChildFill = "False",而且我的项目控件已经在应用了水平模板的滚动查看器中。使用此设置,初始布局在行中看起来很棒。唯一的问题是,当 itemscontrol 变得太大并碰到正确的停靠点时,即使在包含在其中的网格上设置了最小宽度,它也会始终强制正确的停靠点变小。这是我的代码示例:
<DockPanel Grid.Row="1" LastChildFill="False">
<!--Horizontal template applied-->
<ScrollViewer DockPanel.Dock="Left">
<ItemsControl/>
</ScrollViewer>
<Grid DockPanel.Dock="Right" MinWidth="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0"/>
<Button Grid.Column="1"/>
</Grid>
</DockPanel>
感谢您的帮助。 . .还有其他想法吗?
【讨论】: