2014-10-08 31 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你所看到的錯誤發生。