XAML StackPanel内部项大小问题
本文关键字:问题 StackPanel 内部 XAML | 更新日期: 2023-09-27 18:25:54
我有这个XAML代码:
<StackPanel Orientation="Horizontal" Margin="0">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel x:Name="Miniaturas" Orientation="Vertical" MinWidth="100" Width="Auto" Grid.Column="0" Height="Auto" ScrollViewer.CanContentScroll="True">
</StackPanel>
</ScrollViewer>
<Grid Margin="1">
<WindowsFormsHost x:Name="VistaPrevia" Width="Auto"/>
</Grid>
</StackPanel>
我想做的是模拟两列。为什么?由于WindowsFormsHost无法存储到ColumnDefinition中,因此会引发以下错误:
无法将值Type"WindowsFormHost"添加到"ColumnDefinitionCollection"类型的字典或集合。
通常我用这个代码来做这件事:
<Grid Margin="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<WindowsFormsHost x:Name="VistaPrevia" Width="Auto"/>
</Grid>
在不使用ColumnDefinition的情况下,如何获得相同的效果
注意:我需要两列,一列宽度固定,另一列使用窗口的剩余宽度。
下拉VS2013 express,查看解析器中是否已修复该错误。还要验证您是否已安装Visual Studio 2012的更新4,以查看它是否修复了该问题。
您看到的错误是因为您执行了类似的操作
<Grid Margin="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="*"/>
<WindowsFormsHost x:Name="VistaPrevia" Width="Auto"/><!-- fail -->
</Grid.ColumnDefinitions>
</Grid>
附言:答案是使用Grid
。