【发布时间】:2017-10-09 03:37:30
【问题描述】:
我想防止 ComboBox 根据所选项目的大小调整大小。考虑这个简化的例子:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="150" Width="300">
<GroupBox Header="Group Header" Margin="5">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ComboBox MinWidth="100" Grid.Column="0" Margin="5" MaxWidth="150"/>
<ComboBox Grid.Column="1" Margin="5" MinWidth="110">
<ComboBoxItem Content="Very loooooooooooooooooooooooooooooooooooooooong text"/>
<ComboBoxItem Content="Normal text"/>
</ComboBox>
</Grid>
</ScrollViewer>
</GroupBox>
</Window>
当您选择第二个 ComboBox 中的第一个项目时,该 ComboBox 会展开,以便所选项目的全部内容适合,从左侧隐藏 ComboBox
我想实现三件事:
- 拥有滚动查看器,使控件适合其最小尺寸
- 如果 Window 很大,我希望第二个 ComboBox 适合剩余的大小
- 如果我在第二个 ComboBox 中选择了一个很长的项目,我希望它保持原来的大小并且不调整为所选项目的内容
有可能吗?
【问题讨论】:
-
删除
scrollViewer即可满足您的所有需求。 -
@RohitVats 我无法删除 ScrollViewer,因为它是 Window 的一小部分,可能没有足够的空间容纳所有控件