2011-12-20 55 views
0

我正在開發WP7應用程序。在主頁上我有一個ListBox。每個項目包含一個StackPanel和一個按鈕。 StackPanel中的項目大小是變化的,Button的寬度始終爲75px。我希望Stackpanel部分的寬度始終爲屏幕寬度的80%。我用下面的DataTemplate爲ListBox:網格列不能調整旋轉

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 

    <StackPanel Grid.Column="0" Margin="0,0,0,17" toolkit:TiltEffect.IsTiltEnabled="True"> 
     <TextBlock Text="{Binding ItemDescription}" TextWrapping="Wrap" Margin="12,0,0,0" Style="{StaticResource PhoneTextTitle2Style}" Foreground="{StaticResource PhoneAccentBrush}" /> 
     <TextBlock Text="{Binding ItemLocation}" TextWrapping="Wrap" Margin="12,-6,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
     <TextBlock Text="{Binding ItemDate}" TextWrapping="Wrap" Margin="12,6,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
    </StackPanel> 
    <Button Grid.Column="1" x:Name="deleteTaskButton" Width="75" Height="75" BorderThickness="0" Margin="0,-18,0,0" Click="DeleteTaskButtonClick"> 
     <Button.Template> 
      <ControlTemplate> 
       <Image Source="{Binding ElementName=RemindersListBox, Path=DataContext.ImgSource}" Height="48" Width="48" /> 
      </ControlTemplate> 
     </Button.Template> 
    </Button> 
</Grid> 

我從這次question解決方案。但網格沒有調整大小。我如何才能實現將網格的第一列設置爲橫向寬度的80%,無論是在橫向模式還是縱向模式下?這讓我忙了好幾個小時......

在此先感謝!

回答

2
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="4*" /> 
    <ColumnDefinition Width="1*" /> 
</Grid.ColumnDefinitions> 

應該給你一個80/20分隔列大小。

+0

嗨,感謝您的快速響應。我也在朝着這個方向思考,我嘗試了你的解決方案,但是這也行不通。:S – Abbas 2011-12-20 16:06:34

+0

結合Ku6opr的回答,這就像一個魅力。只有他給出的解決方案纔是關鍵! :) – Abbas 2011-12-20 16:14:19