Есть 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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я только начал разбираться с RequireJS, но у меня появился уже вопросДопустим я имею два плагина для jQuery: a
Для того чтобы снова ввести число, нужно обновить страничкуМожно ли сделать, чтобы после неверного ответа программа сама снова предлагала...
В Уроках Javascript с нуляУрок 6 - Циклы утверждается, что этот цикл устаревший (между 13 и 15 минутами)