WPF: Привязка высоты компонента к чьему-либо

Я имею, в окне, a Grid это содержит a RadioButton, a TextBox и a Button, каждый в столбце 0, 1, 2, соответственно. Им всем установили их высоты на автоматический.

Затем в другой части окна у меня есть другой Grid с a Label, a TextBox и a Button, в столбцах 0, 1, и 2. Высоты также установлены на автоматический.

Проблема, которую я имею, состоит в том, что высота первой сетки меньше, чем секундное. Я предполагаю, что это - потому что Label вынуждает второй быть более высоким. Как я могу сделать его так, чтобы первая сетка была так же высока как второе? Я пытался делать это:

Назовите текстовое поле во второй сетке SomeName.
В <Grid.ColumnDeclarations> из первой Сетки я изменил Высоту от "автоматического" до "{Связывающий ElementName=SomeName, Path=Height}".

Но это не сделало то, что я хотел. Размер был тем же. Я предполагаю, что Привязка в основном становится "автоматической" и бросает его там, который заканчивает тем, что был тем же самым.

Кроме того, я ищу решение, которое не включает установку высот к фиксированному значению.

22
задан Dave Clemmer 19 September 2011 в 16:11
поделиться

2 ответа

Представьте себе веб-форум. Атака XSS может быть, что я делаю пост с каким-то javascript. Когда вы перейдете на страницу, ваша веб-страница загрузит и запустит js и сделает то, что я скажу. Поскольку вы просмотрели страницу и, скорее всего, вошли в систему, мой javascript будет делать все, что у вас есть привилегии, такие как сделать публикацию, удалить ваши публикации, вставить спам, показать всплывающее окно и т.д.

Таким образом, реальная концепция с XSS - это сценарий, выполняемый в контексте вашего пользователя, который является повышением привилегий. Вы должны быть осторожны, чтобы в любом месте вашего приложения, которое получает пользовательские входные данные, скрывались любые сценарии и т.д. внутри него, чтобы гарантировать, что XSS не может быть выполнен.

Вы должны следить за вторичными атаками. Представьте, если я вложу вредоносный сценарий в свое имя пользователя. Это может перейти на веб-сайт без флажка, а затем записать обратно без флажка, но тогда любая страница, которая просматривается с моим именем пользователя на нем фактически будет выполнять вредоносный сценарий в контексте пользователя.

Переход от пользовательского ввода. Не катайте свой код, чтобы сделать это. Проверьте все, что происходит, и все выходит.

-121--2240759-

Невозможно отобразить изображение и HTML в одном файле, так как для его интерпретации браузеры зависят от заголовка content-type .

Заголовок типа содержимого документа HTML обычно имеет значение text/html , тогда как тип содержимого изображения - image/* (заменить * на формат изображения). Можно распечатать данные изображения в HTML-документе, но, поскольку обозревателю поручено интерпретировать их как text/html , а не как изображение, их содержимое будет искажено.

Необходимо связать тег < img > с файлом PHP, как описано выше. Я не уверен, почему это проблема; это правильный путь, чтобы пойти по этому пути. Вы, конечно, можете обрезать изображение, манипулируя его размерами в HTML, но я не рекомендую.

-121--3302919-

Поместите две сетки в область общего размера и используйте SharedGroupGroup , чтобы заблокировать высоты строк вместе:

<SomeContainer Grid.IsSharedSizeScope="True">  <!-- Could be the Window or some more nearby Panel -->
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition SharedSizeGroup="LabelAndRadioButtonGroup" />
    </Grid.RowDefinitions>
    <Label Grid.Row="0" />
  </Grid>
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition SharedSizeGroup="LabelAndRadioButtonGroup" />
    </Grid.RowDefinitions>
    <RadioButton Grid.Row="0" />
  </Grid>
</SomeContainer>

См. также Как совместно использовать свойства размера между сетками в MSDN.

9
ответ дан 29 November 2019 в 04:08
поделиться

Привязать к ActualHeight , а не к свойству Height :

<RowDefinition Height="{Binding ActualHeight, ElementName=otherTextBox}" />
43
ответ дан 29 November 2019 в 04:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: