在ScrollViewer.ComputedVerticalScrollBarVisibility更改上调整listview列的大小

我使用星型转换器来获得相对大小的listview列 ,但我目前的问题是,如果滚动条可见或不可见,则不会考虑这一点。 我试着在代码中添加如下内容:

var scroll = FindVisualChild(listView); var offset = 0.0; if (scroll.ComputedVerticalScrollBarVisibility == Visibility.Visible) offset = SystemParameters.ScrollWidth + 5; 

但是,大小调整是在滚动条可见性之前完成的,并且滚动始终显示为“ Collapsed

所以,我的问题是,如何适当调整列的大小。 我试图在ScrollViewer.ComputedVerticalScrollBarVisibility上添加一个触发器,但在那里没有取得任何成功。 我尝试使用基于此链接的自定义代码 ,但目前总是以空白列表视图结束(可能是由于使用ItemsPresenter的listview,但我目前不确定)。

这是我尝试过的listview设置:

                                  

安装者只是为了看它是否有效……但它们根本就没有设置

我最终创造了一种黑客攻击。 这是我最初的博客文章 ,因为它可以花很长时间。 我仍然需要清理代码,但希望它能帮助其他人