Получение высоты окна из модели вида - PullRequest
1 голос
/ 28 марта 2020

Я пытаюсь найти способ доступа к высоте окна моего экрана из модели моего вида, чтобы я мог установить свой 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...