2012-02-14 20 views
0

我想在我的網格中顯示兩列。第一個是有時比想要容納它的行更長的文本塊。第二個是一個按鈕。有沒有辦法讓文本塊儘可能多的空間,同時還留下空間讓按鈕立即出現?如何防止Silverlight xaml網格中的某列佔據整行?

當我使用下面的代碼時,textblock有時會將按鈕推到網格的可視區域之外。

<Grid > 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 
    <TextBlock Grid.Column="0" Text="{Binding Description}" HorizontalAlignment="Stretch" /> 
    <Button Margin="4,0" Height="0" Width="16" Grid.Column="1" MinWidth="20" VerticalAlignment="Center" /> 
</Grid> 

我試過設置的第一列定義WIDTH =「*」,但隨後的按鈕始終在該行的末尾,當我想它旁邊的文本。有什麼建議麼?

這是在Silverlight 4

感謝。

編輯 我想網格調整大小,當用戶改變窗口大小,對電網的大小,以便設定硬性限制是沒有好處的。話雖如此,我能夠在TextBlock加載時以及窗口更改大小時,在代碼後面手動設置MaxWidth。它笨重,但它的工作原理。

回答

0

下面肯定會工作..

<Grid x:Name="LayoutRoot" Background="White" Width="250"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 
    <TextBlock x:Name="textBlock" Grid.Column="0" Text="Text Box" VerticalAlignment="Top"/> 
    <Button x:Name="button" Grid.Column="1" Content="Button" VerticalAlignment="Top" Width="60"/> 
</Grid> 

添加以下行xaml.cs在構造文件..

public MainPage() 
{ 
    InitializeComponent(); 
    textBlock.MaxWidth = LayoutRoot.Width - button.Width; 
} 

讓我知道是否有任何與它的問題。

謝謝..

+0

這將寬度限制爲250像素,當我希望它能夠膨脹或收縮,當用戶改變窗口大小。對不起,我忘了在帖子中提到。我確實找到了一個辦法,但它有點笨重。 – Ellipsoid 2012-02-15 22:04:57

相關問題