How to get or compute actual width of ListBox with

2019-01-23 17:23发布

问题:

I wonder how to get or compute actual width of ListBox without Vertical Scrollbar if visible.

What I want to do is changing width of each items inside ListBox without being covered by Vertical Scrollbar.

Width="{Binding ActualWidth, 
    RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}

At least, above binding tell me the actual width of ListBox, but this one does not handle width of vertical scrollbar.

Is there any good way to solve this?

回答1:

Try binding to the ViewportWidth property of the containing ScrollViewer instead.

Like this:

Width="{Binding Path=ViewportWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ScrollViewer}}"