Panuon / Panuon.WPF.UI

Professional wpf ui library.
Apache License 2.0
1.03k stars 104 forks source link

MultiComboBox不设置固定高度时,引发System.InvalidOperationException异常 #243

Open renshou2003 opened 3 weeks ago

renshou2003 commented 3 weeks ago

MultiComboBox不设置固定高度时,引发System.InvalidOperationException:“元素“System.Windows.Controls.VirtualizingStackPanel”的布局测量覆盖不应将 PositiveInfinity 作为其 DesiredSize 返回,即使将 Infinity 作为可用大小传入。”

原因为模板文件:SourceCode\SharedResources\Panuon.WPF.UI.Internal\Templates\MultiComboBoxTemplate.xaml ,其中Visibility设置为Hidden导致,建议设置为Collapsed image

Mochengvia commented 3 weeks ago

我在代码中尝试了

<pu:MultiComboBox Height="NaN"
                  VerticalAlignment="Center">
    <pu:MultiComboBoxItem Content="Item 1" />
</pu:MultiComboBox>

无论是否添加 VerticalAlignment="Center" ,都不会报错。 能否提供更多信息?

Mochengvia commented 3 weeks ago

我推测你可能正在一个大小为无限大(或内部为无限大)的容器中使用 MultiComboBox。 因为在正常使用Grid、StackPanel这类容器时,无论是否为子控件设置Height,控件在测量时都不会出现Infinity值。 使用一个无限大的 MultiComboBox 似乎不是合理的开发行为。如果需要帮助,请提供更多信息

renshou2003 commented 2 weeks ago

image 应该是因为RowDefinition定义为Auto导致的,不过我认为这样使用应该是比较常见的。ComboBox控件在这种情况下使用并不会出现问题。 image image 上面为使用ComboBox控件的呈现效果,而同样设置之下MultiComboBox控件将引发异常。