Свернуть пробел после перевода в WP7 / XAML - PullRequest
1 голос
/ 05 ноября 2011

У меня есть простое приложение для Windows Phone 7 (Silverlight / XAML / C #) с StackPanel, содержащим некоторые TextBlock элементы.

Однако, если я переведу один из этих TextBlock элементов (черезRenderTransform с использованием TranslateTransform для указания новой x / y-позиции), тогда TextBlock по-прежнему сохраняет свое первоначальное пространство в StackPanel.Таким образом, в макете есть «дыра», в которой TextBlock был до преобразования (что, я полагаю, является следствием того, как преобразуются преобразования).

Мой вопрос: можеторигинальное пространство элемента будет «свернуто» после преобразования? Я знаю, как это сделать в старом добром HTML / CSS, но я не знаю насчет Silverlight / XAML.Я перепробовал несколько методов, но пока ничего не получалось (сейчас я просто компенсирую, изменяя поля на окружающих элементах TextBlock, но это выглядит уродливым способом).

Если невозможно «свернуть» исходное пространство, есть ли другой способ изменить относительную позицию элемента x / y (я не могу использовать Canvas в этой ситуации)?

Спасибозаранее!

1 Ответ

2 голосов
/ 05 ноября 2011

Если вы уверены, что преобразуемый элемент всегда будет «отсутствовать» в StackPanel, вы можете задать ему отрицательное нижнее поле, равное ActualHeight объекта TextBlock, которое потянет элементы под ним вверх.

Если это не удастся, другим путем будет создание UserControl со StackPanel внутри него и реализация MeasureOverride и / или ArrangeOverride.

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