2014-10-08 46 views
1

我有这样的XAML代码:XAML的StackPanel内的物品尺寸问题

<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它抛出这个错误:

不能增加价值型“WindowsFormHost”到一本字典或类型的集合“ColumnDefinitionCollection

通常我这与此代码:

 <Grid Margin="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="120"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 
      <WindowsFormsHost x:Name="VistaPrevia" Width="Auto"/> 
     </Grid> 

我该怎么做才能obtaind相同效应,而无需使用ColumnDefinition

注意:我需要两个列,一个宽度固定,另一个使用窗口的剩余宽度。

+0

你是什么意思“WindowsFormsHost不能存储到columndefinition”? – Default 2014-10-08 14:15:48

+0

这会抛出一个错误“无法将值类型”WindowsFormHost“添加到类型为”ColumnDefinitionCollection“的字典或集合。 – 2014-10-08 14:18:48

+1

@JuanPabloGomez您是否厌倦了上面的'Grid'示例?您确定您刚刚没有忘记关闭'错误会提示你厌倦了将'WindowsFormsHost'作为另一个列的定义 – dkozl 2014-10-08 14:26:25

回答

1

拉下VS2013表达式,看看错误是否已在解析器中解决。还请验证您是否已安装Visual Studio 2012的更新4,以查看它是否修复了此问题。

+0

Update 4已安装的缺陷 – 2014-10-08 14:56:33

1

,因为你做了这样的事情

<Grid Margin="1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="120"/> 
      <ColumnDefinition Width="*"/> 
      <WindowsFormsHost x:Name="VistaPrevia" Width="Auto"/><!-- fail --> 
     </Grid.ColumnDefinitions> 
    </Grid> 

P.S:答案是使用Grid你所看到的错误发生。