Как запретить столбцу в Silverlight xaml Grid занимать всю строку? - PullRequest
0 голосов
/ 14 февраля 2012

Я хочу отобразить два столбца в моей сетке. Первый - это текстовый блок, который иногда длиннее строки, предназначенной для его хранения. Вторая кнопка. Есть ли способ дать текстовому блоку как можно больше места, при этом оставляя место для кнопки, чтобы сразу после нее нажать?

Когда я использую следующий код, текстовый блок иногда нажимает кнопку за пределами видимой области сетки.

<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.

Спасибо.

EDIT Я хочу, чтобы размер сетки изменялся по мере того, как пользователь изменял размер окна, поэтому жесткое ограничение размера сетки не годится. Тем не менее, я смог вручную установить MaxWidth в коде, когда TextBlock загружается и когда окно меняет размер. Это неуклюже, но это работает.

1 Ответ

0 голосов
/ 15 февраля 2012

Следующее обязательно сработает ..

<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;
}

Дайте мне знать, если есть какие-либо проблемы с ним.

Спасибо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...