Как поставить высоту = "Окно высоты - Контроль высоты" - PullRequest
0 голосов
/ 08 июня 2018

Я хочу, чтобы высота моего ScrollvViewer была высотой окна минус высота других StackPanel.Я получаю высоту окна с:

<ScrollViewer Height="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Border}}, Path=ActualHeight}" >

Но я не могу вычесть это 100, например ..

<ScrollViewer Height="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Border}}, Path=ActualHeight}" -100 >

или

<ScrollViewer Height="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Border}}, Path=ActualHeight} - {Binding ActualHeight, ElementName=parentElementName}">

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Если ScrollViewer находится в последнем ряду сетки, установите высоту строк следующим образом:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <StackPanel Grid.Row="0">...</StackPanel>
    <StackPanel Grid.Row="1">...</StackPanel>
    <StackPanel Grid.Row="2">...</StackPanel>
    <ScrollViewer Grid.Row="3">...</ScrollViewer>
</Grid>

Предполагая, что сетка будет использовать всю клиентскую область окна, последняя строка будет использовать любую высотуостается после того, как панели стека заявили о своей высоте.

0 голосов
/ 08 июня 2018

XAML:

<ScrollViewer Height="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Border}}, Path=ActualHeight}, Converter={StaticResource minusHundredConverter}" >

Конвертер:

public class MinusHundredConverter: IValueConverter
{
     public object Convert(object value, Type targetType,object parameter, CultureInfo culture )
     {
         return ((double)value) - 100;
     }

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture )
     {
         throw new NotSupportedException( "Cannot convert back" );
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...