Есть ScrollViewer:
<ScrollViewer Grid.Row="1"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch">
<local:LogCollectionView/>
</ScrollViewer>
Есть ли свойство, которое позволяет отследить в ViewModel виден вертикальный ScrollBar или нет? Это необходимо для того, чтобы изменять отступ шапки таблицы, которая находится над этим ScrollViewer.
VM не должна знать виден ли скроллбар в GUI или нет. GUI вообще может не существовать или быть консольным и это не должно повлиять на работоспособность VM. В этом и есть смысл MVVM. Видимость скроллбара и всевозможные отступы это чисто компетенция View.
А вообще узнать, видим ли сейчас скроллбар можно заглянув в свойство ComputedVerticalScrollBarVisibility, его изменения удобно отслеживать по событию ScrollChanged:
public MainWindow()
{
InitializeComponent();
MyScrollViewer.ScrollChanged += MyScrollViewer_ScrollChanged;
}
private void MyScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
var v = MyScrollViewer.ComputedVerticalScrollBarVisibility;
}
v при этом будет иметь обычный тип Visibility и принимать значение Collapsed или Visible
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости