Изменение размера WPF формы при компиляции

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

Настройки выравнивания и привязка к краям не меняю, стоят дефолтные.


Ответы (1 шт):

Автор решения: aepot

Просто научитесь пользоваться возможностями XAML разметки.

Когда я впервые узнал о существовании StackPanel и WrapPanel, моя реакция была что-то типа "а что, так можно было???". Ну и Grid - это сетка, вы сами задаете количество колонок и столбцов, их ширину и высоту.

XAML - это просто, но надо изучать доступные контролы, просто так в лоб на марджинах ничего хорошего не получится.

Вот вам короткий пример, показывающий как не умереть от высчитывания Margin на калькуляторе.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/> <!-- занимает столько места, сколько надо содержимому -->
        <RowDefinition/> <!-- занимает всё доступное место, можно указать Height="*" и получить то же самое -->
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="0" Orientation="Horizontal">
        <Button Margin="10" Padding="10,5" Content="Button1"/>
        <Button Margin="10" Padding="10,5" Content="Button2"/>
    </StackPanel>
    <TextBox Margin="10" Grid.Row="1" AcceptsReturn="True" Text="Пример текста" Background="Azure"/>
    <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right">
        <Button Margin="10" Padding="10,5" Content="Button3"/>
        <Button Margin="10" Padding="10,5" Content="Button4"/>
    </StackPanel>
</Grid>

К тому же, размер окна можно менять, кнопки останутся на ожидаемых местах.

xaml example

Померял в фотошопе, отступы ровно 10 пикселей, как задано разметкой.

→ Ссылка