WPF / XAML привязывает ширину элемента к доле экрана - PullRequest
3 голосов
/ 30 августа 2010

Я пишу приложение на C # / WPF и пытаюсь выяснить, как привязать ширину определений столбцов сетки к доле ширины экрана. Это возможно? По сути, я хочу что-то вроде этого:

Сетка = 2x2
Высота строки 1 = 2/3 высоты экрана
Высота строки 2 = 1/3 высоты экрана
Ширина строки 1 = 2/3 ширины экрана
Ширина строки 2 = 1/3 ширины экрана

Я думаю , что это правильно связывает всю ширину с определением столбца:

<ColumnDefinition Width="{Binding ElementName=Window1, Path=Width}"/>

но что я не знаю, как это сделать - это выполнить операцию над значением, полученным через привязку данных ... это вообще возможно? Я чувствую, что это то, что я должен иметь возможность кодировать в XAML и не должен реализовывать программно, но у меня мало опыта в разработке пользовательского интерфейса :( Я хотел бы что-то вроде:

<ColumnDefinition Width="{Binding ElementName=Window1, Path=Width} * 2 / 3"/>

но это неверно

Должен ли я просто написать функцию для изменения расположения элементов пользовательского интерфейса при изменении размера экрана? Я чувствую, что это излишне ... или есть какой-то простой способ сделать это, о котором я не знаю? Любые пожелания приветствуются! Спасибо!

1 Ответ

4 голосов
/ 30 августа 2010

Звучит так, как будто вы просто хотите использовать размер звезды:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="2*"/>
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="2*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>

Это всегда даст первый ряд 2/3 высоты и второй ряд 1/3 высоты, а первыйстолбец 2/3 ширины и второй столбец 1/3 ширины.Он будет основан на размере сетки, но если сетка является единственным дочерним элементом окна, тогда он будет таким же, как размер окна.

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