Фоновое изображение границы не будет охватывать всю границу - PullRequest
0 голосов
/ 17 февраля 2012

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

Проблема, с которой я сталкиваюсь, заключается в том, что я хочу, чтобы фоновое изображение также охватывало высоту приложения и содержалось внутри границы.Однако когда я запускаю приложение, оно занимает достаточно места, чтобы обеспечить фон для элементов управления, существующих на странице.Это означает, что более половины этого столбца сетки остается белым.Я попытался растянуть изображение (установить растяжение для заполнения) и знаю, что изображение достаточно большое.

Пожалуйста, как мне добиться того, что я ищу?важный XAML:

<Border>
        <Border.Background>
            <ImageBrush ImageSource="../Assets/control bg.png" Stretch="Fill" />
        </Border.Background>
        <Grid Margin="10,10,10,0">
            <Grid.Background>
                <ImageBrush />
            </Grid.Background>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Border BorderBrush="Black" BorderThickness="1">
                <TextBlock TextWrapping="Wrap" Text="Owner Information" Margin="5,0,0,0" FontSize="21.333" Foreground="#FF2B2B2B" FontFamily="Verdana"/>
            </Border>
            <Grid Margin="10,10,5,5" Grid.Row="1">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>

                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                          </Grid>

Сетка содержит некоторые элементы управления, которые я пропустил.Это просто текстовые поля и комбо.

1 Ответ

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

Snowbear прав, ваш XAML был бы очень полезен, но вот несколько вещей, с которых нужно начать:

По умолчанию строки и столбцы в Grid s занимают наименьшее количество места, необходимое для размещениясамый большой контент в любой ячейке, содержащейся в данной строке или столбце.Например, если в столбце есть одна ячейка, в которой содержится длинное слово типа «бегемот», а во всех остальных ячейках столбца есть слова поменьше, например «собака», ширина столбца будет равна ширине наибольшего слова (бегемот)."http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.aspx"

Итак, если вашей рамке не назначены явная высота и ширина, она будет существовать только вокруг содержимого, указанного в столбце. Привязка к заданному значению также будет работать.

<Grid Height="50" Width="50">
...