2013-10-23 38 views
2

確切的XAML代碼如下:WP8的ListBox的DataTemplate拋出異常,當StackPanel的寬度爲全寬

<ListBox.ItemTemplate> 
      <DataTemplate> 
      <StackPanel Margin="6,6,6,6" 
         Background="Gray" 
         Orientation="Vertical" 
         HorizontalAlignment="Left" 
         Width="*"> 
         ... 

其他寬度值運行完美。

+0

如果您覺得答案可以解決問題,請點擊綠色複選標記將其標記爲「已接受」。這將有助於未來的讀者找到他們需要的東西(並相信它),並有助於將重點放在仍然沒有答案的舊問題上;) – AirL

回答

1

MSDN來自:

對象的寬度,以像素爲單位。默認值是Double.NaN。除了 的特殊Double.NaN值,該值必須等於或 大於0參見上限信息

說明它不能採取*的價值。 它可以採取的唯一特殊值是Double.NaN(代表自動行爲):

高度和寬度的默認值不爲0;它是Double.NaN。 高度和寬度支持未設置「自動」值的能力。 由於高度和寬度是雙倍值,因此使用Double.NaN作爲特殊值來表示此「自動」行爲。佈局系統 將「自動」值解釋爲通常意味着對象應根據佈局中的可用大小而不是特定的 像素值調整大小。

也許你是混合的StackPanel Width屬性與one致力於GridColumnDefinition,這不是一個double而是GridLength類型。

如果你希望你的StackPanel採取寬度所有remaning空間,那麼你必須將其放在一個Grid

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <StackPanel Margin="6,6,6,6" 
       Background="Gray" 
       Orientation="Vertical" 
       HorizontalAlignment="Left"> 
    ... 
</Grid> 

OR

您也可以嘗試簡單地設置StackPanel.HorizontalAlignement屬性值爲Stretch

如果這些建議都不起作用,那麼問題位於ListBoxItemListBox默認模板內。

+0

這就是它,非常感謝您的回答。 –

+0

不客氣! – AirL

相關問題