Установите нижний колонтитул, который остается в области нижнего колонтитула при изменении размера приложения WPF - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь установить нижний колонтитул в приложении WPF. Я хочу, чтобы нижний колонтитул был простым текстом и ничего более, и я хочу, чтобы он оставался неподвижным при изменении размера страницы. Страница содержит меню сверху, кнопку, которая помещается в холст, потому что я не хочу, чтобы она меняла свой размер. У меня также есть textBox, который находится в сетке, и я хочу, чтобы он был изменен с размером страницы. Под textBox я хочу настроить нижний колонтитул (я установил его с меткой). Кто-нибудь может сказать мне, как я могу достичь этого? Я перепробовал все ..

Вот основная часть моего файла .XAML:

<Grid>
        <Menu>
            <MenuItem Header="_File">
                <MenuItem Header="_Exit" Command="{Binding x}"/>
            </MenuItem>
            <MenuItem Header="_View">
                <MenuItem Header="Logs" Comm`enter code here`and="{Binding y}" />
            </MenuItem>
        </Menu>
        <Canvas Margin="0,0,-0.4,432.6">
            <Button Command="{Binding z}" Name="Button" Canvas.Top="22" Width="122" Height="24" Canvas.Left="10">Download Images</Button>
        </Canvas>
        <Canvas Margin="0,0,-0.4,432.6">
            <Label HorizontalAlignment="Left" Width="108" Canvas.Left="10" Height="25" Canvas.Top="47">Status</Label>
        </Canvas>
        <TextBox Name="MessageDisplay" Text="{Binding q, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay,IsAsync=True}"  Margin="10,73,10.6,44.6"/>
        <Label Margin="0,475,-0.4,-0.4">Footer !!!</Label>
</Grid>

Вот как это выглядит, когда я запускаю приложение: До изменения размера

и вот что происходит после того, как я разверну страницу: развернуто

1 Ответ

0 голосов
/ 23 апреля 2020

Вы должны использовать RowDefinitions для вашего Grid, чтобы сделать это надежно. Не устанавливайте положения холста и поля для указания c областей, иначе изменение размера никогда не будет выглядеть правильно. Margin - отличный инструмент, но его следует устанавливать в области области, в которой находится элемент управления в макете

Укажите определения строк и их высоту. Вот пример использования вашего кода. Строки начинаются с индекса 0. Возьмите этот пример и найдите дополнительную информацию об указании расположения строк и столбцов сетки в WPF. Это должно помочь вам начать правильный путь.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="20"/>
        <RowDefinition Height="40"/>
        <RowDefinition Height="40"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="40"/>
    </Grid.RowDefinitions>
    <Menu>
        <MenuItem Header="_File">
            <MenuItem Header="_Exit" Command="{Binding x}"/>
        </MenuItem>
        <MenuItem Header="_View">
            <MenuItem Header="Logs"  />
        </MenuItem>
    </Menu>
    <Canvas Grid.Row="1">
        <Button Command="{Binding z}" Name="Button" Margin="5" Width="122" Height="24" >Download Images</Button>
    </Canvas>
    <Canvas Grid.Row="2">
        <Label HorizontalAlignment="Left" Width="108"  Height="25" >Status</Label>
    </Canvas>
    <TextBox Grid.Row="3" Name="MessageDisplay" Text="{Binding q, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay,IsAsync=True}"  Margin="5"/>
    <Label Grid.Row="4" >Footer !!!</Label>
</Grid>
...