Я пытаюсь найти способ доступа к высоте окна моего экрана из модели моего вида, чтобы я мог установить свой MaxHeight в процентах от высоты окна.
XAML
<UserControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SizeChanged">
<i:InvokeCommandAction Command="{Binding SizeChangedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<Grid.RowDefinitions/>
<ListBox Grid.Row="0"
Content={Binding SomeContent}
MaxHeightMaxHeight="{Binding PercentageMaxHeight}"/>
<Button Content="ClickMe"
Grid.Row="1" />
</Grid>
<UserControl/>
Для ясности, это не мой настоящий полный XAML. Идея состоит в том, что я хочу, чтобы у моего ListBox была максимальная высота, выраженная в процентах от размера экрана, чтобы моя кнопка всегда находилась прямо под моим списком, но список не выводил кнопку sh с экрана, когда он слишком заполнен. вверх.
Просмотр модели
public PercentageMaxHeight;
public ICommand SizeChangedCommand => new RelayCommand(SizeChangedCommandExecuted);
private void SizeChangedCommandExecuted()
{
/*I am looking for a way to access ActualHeight, or any other way of getting the height of my window
here, so I can update PercentageMaxHeight. */
}
Я не хочу устанавливать его из кода моего XAML, потому что я пытаюсь следовать MVVM.