在Measure期间,我仍然很困惑,因为这导致stackpanel的孩子(信号图)被赋予(292,Infinity)作为Measure中的availableSize:
<Window x:Class="paneltesting.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpfExp="clr-namespace:WpfExperimental"
Title="Window1" Height="300" Width="300">
<StackPanel
>
<wpfExp:SignalGraph/>
</StackPanel>
</Window>
使用设定尺寸的画布时,会为孩子提供(无穷大,无穷大)其可用尺寸。我认为这与与窗口的交互有关,但我真的很困惑发生了什么。
<Canvas Width="100" Height="100">
<StackPanel SizeChanged="ScrollViewer_SizeChanged"
>
<wpfExp:SignalGraph/>
</StackPanel>
</Canvas>
使用滚动查看器时也会发生同样的事情。我只是想能够了解 scrollviewer 如何为其子级提供大小。我想知道是否更改其 controltemplate 中的面板可能会导致滚动查看器仅将滚动查看器大小作为 availableSize 传递给其子级而不是无限空间。
我已经编写了一个解决方法,但我只是想了解这一点,以便我确定没有更简单的方法来获得我想要的行为。