adler32, доступный в zlib заголовках, рекламируется как являющийся значительно быстрее, чем crc32, будучи незначительно менее точным.
Что ж, вы уже нашли решение;) StackPanels не заполняет оставшееся пространство по умолчанию, потому что их размер всегда равен объединенному требуемому размеру их дочерних элементов. Сетка - отличный вариант, потому что она будет динамически изменять размер при изменении размера браузера. Ответ Марка об использовании DockPanel тоже отлично работает. Единственный другой метод - это вручную изменить размер элементов при изменении размера родительского элемента управления. В общем, придерживайтесь сеток для внешнего макета, и они заполняют их StackPanels и другими элементами управления, и вы должны быть настроены.
Вы можете использовать DockPanel
. Установите первый элемент для закрепления сверху, а второй для закрепления заливки или используйте свойство LastChildFill
:
<toolkit:DockPanel LastChildFill="True"
xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit">
<Button DockPanel.Dock="Top" Height="30" Width="100"
Content="Get Content" x:Name="GetContent"/>
<ListBox Background="Azure" />
</toolkit:DockPanel>
Я согласен с замечанием Джеймса о том, что «StackPanels не заполняет оставшееся пространство по умолчанию, потому что их размер всегда равен объединенному требуемому размеру их дочернего элемента. элементы ". Именно это и происходит, но это не ожидаемый результат.
Я понимаю, почему эта инструкция сжимает содержимое до минимально необходимого места.
<StackPanel Height="Auto" Width="Auto">
Однако ... StackPanel принимает аргумент HorizontalAlignment, который, если он выбран, должен заставить панель стека заполнять содержимое своего родительского контейнера. Это именно то, что происходит, когда вы устанавливаете Orientation = "Vertical". Обратите внимание, что в этом случае StackPanel определит, сколько горизонтального пространства доступно, и выделит его дочерним элементам управления.
<StackPanel Height="30" Orientation="Vertical" HorizontalAlignment="Stretch" >
<TextBox /> <!--TextBox fills entire space-->
</StackPanel>
Только когда Orientation = "Horizontal", дочерний размер Horizontal не работает.
<StackPanel Height="30" Orientation="Horizontal" HorizontalAlignment="Stretch" >
<TextBox /> <!--TextBox fills smallest space available-->
</StackPanel>