Не отрисовываются элементы на форме

40
23 сентября 2021, 02:40

На форме не отображаются некоторые элементы, а некоторые отображаются не полностью.

Форма:

<Window x:Class="ImageGen.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ImageGen"
        mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Title="ImageGen by Jagailo" Height="768" Width="1366" ResizeMode="CanMinimize">
    <Grid>
        <Button x:Name="button1" Content="Изображение 1" Width="125" Height="35" Click="button1_Click" Margin="222,10,1013,692" />
        <Button x:Name="button2" Content="Изображение 2" Width="125" Height="35" Click="button1_Click" Margin="222,55,1013,692" />
        <Button x:Name="button3" Content="Изображение 3" Width="125" Height="35" Click="button1_Click" Margin="222,100,1013,692" />
        <Button x:Name="button4" Content="Изображение 4" Width="125" Height="35" Click="button1_Click" Margin="222,145,1013,692" />
        <Image x:Name="imageView1" Width="172" Height="172" RenderOptions.BitmapScalingMode="NearestNeighbor" Margin="40,10,1178,557" />
        <Image x:Name="imageView2" Width="172" Height="172" RenderOptions.BitmapScalingMode="NearestNeighbor" Margin="40,192,1178,380" />
        <Image x:Name="imageView3" Width="172" Height="172" RenderOptions.BitmapScalingMode="NearestNeighbor" Margin="40,374,1178,287" />
        <Image x:Name="imageView4" Width="172" Height="172" RenderOptions.BitmapScalingMode="NearestNeighbor" Margin="40,557,1178,10" />
        <Label Content="1" Width="20" Height="172" Margin="10,10,1330,557" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="18" />
        <Label Content="2" Width="20" Height="172" Margin="10,192,1330,375" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="18" />
        <Label Content="3" Width="20" Height="172" Margin="10,374,1330,193" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="18" />
        <Label Content="4" Width="20" Height="172" Margin="10,557,1330,10" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" FontSize="18" />
        <DataGrid x:Name="dataGrid1" HorizontalAlignment="Left" Height="597" Margin="651,132,0,0" VerticalAlignment="Top" Width="699" LoadingRow="dataGrid1_LoadingRow"/>
    </Grid>
</Window>

В конструкторе не видны кнопки А в самой программе так вообще всё плохо, даже с отступами у DataGrid

Answer 1

Ох не советую я вам двигать элементы в студии, ибо получаете такое в коде: Margin="222,10,1013,692", из за чего ваши элементы будут ездить при изменение размера окна...

У вас должна быть сетка (grid), которая разбита на нужные части, затем в самой сетке элементы для группировки (Grid, StackPanel, WrapPanel, DockPanel и другие), которые настроены на отображение в нужном месте при помощью Grid.Row и Grid.Column, сам Margin должен быть не большой (в идеале 1-10, чисто отступы, но точно не 1000). Далее в этих элементах размещаете нужный вам контент, будь то кнопки или еще что.

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

Скажем простой пример разделения кнопок на два столбца:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <StackPanel Grid.Column="0">
        <Button Content="Hello"/>
        <Button Content="World!"/>
    </StackPanel>
    <StackPanel Grid.Column="1">
        <Button Content="World!"/>
        <Button Content="Hello"/>
    </StackPanel>
</Grid>

В вашем варианте, советую разбить все по группам, разместить по своим местам (не с помощью Margin) и будет все как надо!

READ ALSO
Не работает скрипт на C#

Не работает скрипт на C#

движок Unity выдает вот такую ошибку

45
Выходные параметры в потоке c#

Выходные параметры в потоке c#

Есть метод, который я хочу передать в потокУ него есть выходной параметр startDriver(out int driver); Каким образом это можно сделать?

56
Привязка моделей

Привязка моделей

Доброго времени суток!

34
Как записать значение переменой в строку по id?

Как записать значение переменой в строку по id?

Мне нужно чтобы данные обновлялись в строке, доступ к которой мы получали за id, то есть когда я изменю в параметрах john на другое имя, то нужно...

27