Я реализовал систему GUI, сильно вдохновленную системой компоновки Measure and Arrange WPF для игры. Хотя он отлично работает с DockPanels и StackPanels, мне недавно нужно было использовать WrapPanels. Я обнаружил, что в его нынешнем состоянии моя система GUI не может поддерживать упаковку, потому что мне нужно будет знать максимальный доступный размер на основе предков, и мои измерения в настоящее время выполняются без этой информации.Как работает ограничение размера измерения WPF?
Я проверил документацию WPF и выяснил, что их метод Measure
принимает ограничение размера в качестве параметра: Size Measure(Size availableSize)
. Это меня озадачивает. По моему пониманию этого, WPF сначала измеряет от листьев до корня, а затем от корня до листьев. Однако в этом случае требуемый размер от предков необходим во время фазы измерения. Это кажется мне противоречивым, поскольку размер предков зависит от размера их потомков.
Каким образом WPF предоставляет это значение availableSize
в проходе измерения?
Это имеет смысл :) – Trillian