C# WPF изменение размера кнопок при изменение размера окна

Рейтинг: 0Ответов: 1Опубликовано: 07.03.2023

Подскажите как сделать чтобы при изменение окна, менялся размер кнопок

<Grid>
    <Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <DockPanel Grid.Column="0" Grid.Row="0" Width="Auto" Height="40" >
            <TextBlock Text="Example" FontSize="30" Margin="5,0,0,0"></TextBlock>
        </DockPanel>
        <DockPanel Grid.Column="1" Grid.Row="0" HorizontalAlignment="Right" Grid.ColumnSpan="1" Width="Auto" >
            <Button Style="{DynamicResource BtnStyle}" Foreground="White" x:Name="BtnStatistic" Content="Статистика" Margin="-355,5,0,0" Width="112"></Button>
            <Button Style="{DynamicResource BtnStyle}" Foreground="White" x:Name="BtnSetting" Grid.ColumnSpan="1" Content="Настройки" Margin="-122,5,0,0" Width="112"></Button>
        </DockPanel>
    </Grid>
</Grid>

Ответы

▲ 2Принят

Можно разбить Grid на 3 колонки с равной шириной и сделать кнопки четко привязанными к одной из 3-х колонок Grid'a.
Обратите внимание на Grid.Column у кнопок, у TextBlock'a свойство можно не указывать, т.к. по дефолту там будет Grid.Column="0" (первая колонка).

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

    <TextBlock Text="Example" 
               FontSize="30" 
               Margin="5,0,0,0"/>

    <Button Style="{DynamicResource BtnStyle}" 
            Foreground="White" 
            x:Name="BtnStatistic" 
            Content="Статистика"
            Grid.Column="1"/>

    <Button Style="{DynamicResource BtnStyle}" 
            Foreground="White"
            x:Name="BtnSetting" 
            Grid.Column="2"
            Content="Настройки"/>
</Grid>