C # WPF всегда выравнивает элементы управления относительно фонового изображения окна - PullRequest
0 голосов
/ 25 июня 2018


У меня есть приложение WPF, в котором я использую фоновое изображение.

 <Window.Background>
    <ImageBrush ImageSource="Images/background.png"/>
</Window.Background>

В окне у меня есть определения сеток и столбцов.

<Grid ShowGridLines="False">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
</Grid.RowDefinitions>

При каждом изменении размера окна фоновое изображение изменяется, и это нормально.
Проблема в том, что элементы управления в форме теряют свою позицию.
Фон выглядит следующим образом:
Background image

Мне нужно добавить текстовые поля между строк, чтобы он выглядел так:
Desired solution

ИтакДо сих пор я пытался использовать canvas, dockpanel, помещая текстовые поля в другой пользовательский элемент управления, но ничего не помогло.
Элементы управления не имеют полей / ширины или высоты, только rowspan и columnspan.

Любая идея будет полезна :)спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

Размер ваших текстовых полей должен соответствовать размеру окна. Вы можете определить ширину столбца и высоту строки как доли ширины и высоты, указав размер звездочкой (*). Смотрите пример ниже для начала. Конечно, вы можете немного подправить числа.

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.2*"/>
        <ColumnDefinition Width="0.29*"/>
        <ColumnDefinition Width="0.02*"/>
        <ColumnDefinition Width="0.29*"/>
        <ColumnDefinition Width="0.2*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="0.55*"/>
        <RowDefinition Height="0.1*"/>
        <RowDefinition Height="0.1*"/>
        <RowDefinition Height="0.1*"/>
        <RowDefinition Height="0.1*"/>

    </Grid.RowDefinitions>
    <TextBox Grid.Row="1" Grid.Column="1"/>
    <TextBox Grid.Row="1" Grid.Column="3"/>
    <TextBox Grid.Row="3" Grid.Column="1"/>
    <TextBox Grid.Row="3" Grid.Column="3"/>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...