Содержимое сетки вкладок WPF исчезает на полпути вниз - PullRequest
0 голосов
/ 26 октября 2011

У меня странная проблема. У меня есть TabControl, созданный так:

<TabControl HorizontalAlignment="Stretch" Name="tabControl" VerticalAlignment="Stretch" FontSize="10">
...
</TanControl>

с несколькими вкладками, созданными так:

<TabItem Header="XXXX" Name="tab1">
...
</TabItem>

Внутри каждой вкладки у меня есть сетка, следуя коду, созданному перетаскиванием панели инструментов, я начал добавлять данные в первый элемент управления следующим образом:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Label Grid.Column="0" Content="XXXX:" Margin="1,6" Height="28" HorizontalAlignment="Right" Name="label001" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,34" Height="28" HorizontalAlignment="Right" Name="label002" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,62" Height="28" HorizontalAlignment="Right" Name="label003" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,90" Height="28" HorizontalAlignment="Right" Name="label004" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,130" Height="28" HorizontalAlignment="Right" Name="label005" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,158" Height="28" HorizontalAlignment="Right" Name="label006" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,186" Height="28" HorizontalAlignment="Right" Name="label007" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,226" Height="28" HorizontalAlignment="Right" Name="label008" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,254" Height="28" HorizontalAlignment="Right" Name="label009" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="1" Content="XXXX" Margin="1,254" Height="28" HorizontalAlignment="Left" Name="lbl1" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="0" Content="XXXX:" Margin="1,282" Height="28" HorizontalAlignment="Right" Name="label010" VerticalAlignment="Top" FontSize="12" />
    <Label Grid.Column="1" Content="XXXX" Margin="1,282" Height="28" HorizontalAlignment="Left" Name="lbl2" VerticalAlignment="Top" FontSize="12" />
</Grid>

Проблема в том, что после того, как метка помещена в сетку дальше, чем на полпути, она исчезает. Если изменить размер окна, чтобы оно стало больше, я смогу увидеть больше предметов, потому что они больше не прошли половину пути, если я уменьшу его, то больше исчезнет, ​​потому что они пройдут половину точки.

Я попытался добавить строки в сетку, и они все еще исчезают! Странная часть: если я добавлю n строк и разделю метки между ними, каждая строка будет обрезана в середине каждой строки.

Эта проблема также отображается в режиме конструктора, но только в том случае, если установлен вертикальный предел, например, высота строки или максимальная высота окна (поскольку в режиме конструктора контейнеры растягиваются, чтобы вместить все содержимое по мере их добавления).

И, наконец, колонны никогда не исчезают наполовину, независимо от того, насколько они маленькие.

1 Ответ

2 голосов
/ 26 октября 2011

Margin = "20,50" будет означать толщину с левой и правой стороны, установленными на 20, а сверху и снизу на 50. от MSDN

Таким образом, поле «1,282» последней метки совпадает с «1,282,1,282» (слева, сверху, справа, снизу). Простой способ решить вашу проблему - изменить поле каждой метки на «X, X, 1,0».

Вы используете Margin для управления положением каждого элемента управления, но я рекомендую вам использовать вложенные свойства Layout Controls WPF для управления положением. Например, для Gird есть Gird.Row и Grid.Column, а для DockPannel есть Dock.Top, Dock.Left и т. Д. По этой проблеме см. Использовать обзор автоматической компоновки .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...