Настройка управления Silverlight Toolkit: Expander
Введение
Это второй пост Настройка Silverlight Toolkit ряд элементов управления. Это сообщение свидетельствует о том, как настроить Expander, и обеспечивает наиболее часто задаваемых настроек из Silverlight Toolkit форум .
Expander Настройка
Чтобы настроить Expander, очень важно понять его API и шаблон по умолчанию, и знаете, как использовать смесь для повторного шаблон элемента управления. Я настоятельно рекомендую вам прочитать мои предыдущие посты управления Expander в Silverlight Toolkit , если у вас еще нет. Ключом к настройке Expander:
- понять Expander интерфейс, особенно контроль контракта:
- Expander ожидает один шаблона, переключатель под названием "ExpanderButton", в шаблон. Его развернуть / свернуть функция зависит от существования этого шаблона, поскольку Silverlight не поддерживает два способа связывания.
- Expander выставляет ExpansionStates визуальное состояние группы (в том числе разворачивать и сворачивать двух визуальных состояний) для пользователей, чтобы настроить его разворачивать и сворачивать поведения.
- Expander выставляет ExpandDirectionStates визуальное состояние группы (в том числе ExpandDown, ExpandUp, ExpandLeft, ExpandRight) для пользователей, чтобы изменить внешний вид для каждого из четырех расширить направления.
- Expander также предоставляет HeaderTemplate и ContentTemplate свойства пользователям настраивать его заголовок и содержание части. Вы можете найти такую настройку с Silverlight Пример Control Toolkit .
- понять шаблон по умолчанию расширителя. На снимке экрана показано, как шаблон по умолчанию обрабатывает расположение четырех расширить направления и поведение развернуть / свернуть путем предоставления раскадровку для ExpansionStates и ExpandDirectionStates визуальных групп государства:
- Весь заголовок шаблонов ToggleButton, так что в любом случае нажатия на заголовок может развернуть / свернуть Содержимое области.
- Она использует 2 × 2 сетки в заголовке формы и содержания территории.
- Он излагает Expander по ExpandDirection имея состояние анимации ExpandDirectionStates:
- Он излагает заголовок и содержание областях оживляющий их Grid.Row и Grid.Column свойствами.
- Он обращает заголовке переключатель правильно, изменив его шаблон.
- Он расширяет / падает содержание районах анимации ее видимость атрибута в переходах ExpanionStates государства.
Ниже скриншот показывает наиболее часто задаваемых настроек. Если у вас установлен Silverlight 2.0 и поддерживает читателя живой Silverlight приложения, вы можете играть с ним здесь:
- PDC08 показывает Expander в текущей версии на CodePlex. Существует ошибка в ExpanderRightHeaderTemplate (используется, если вы установите ExpandDirection направо), что приводит к высокой процессора и памяти. Это зафиксировано и исправление будет в нашем следующем выпуске в течение нескольких недель. Я приношу извинения за причиненные неудобства. Expander мой первый Silverlight контроля. Я ничего не знал о Silverlight и WPF, прежде чем я присоединился к команде Шона несколько месяцев назад, и я до сих пор не могу поверить, насколько хрупким XAML и анимации. Мне потребовалось много времени, чтобы выследить одного символа исправить: один (из десятков) ObjectAnimationKeyFrames имеет продолжительность атрибут случайно установлена на "1" вместо "0". Вот поехал Silverlight выполнения орехами и свиней процессора / памяти.
- Новый (ExpanderStyle) показывает новый шаблон будет выпущен в ближайшее время.
- Исчезновение In / Out (ExpanderFadeStyle) настраивает развернуть / свернуть поведение анимации Opacity исчезать содержание и выход.
- Масштаб In / Out (ExpanderScaleStyle) настраивает развернуть / свернуть поведение анимации ScaleTransform.ScaleX и ScaleTransform.ScaleY между 1 и 0 для расширения и сжатия контента.
- Нет кнопки (ExpanderNoButtonStyle) настраивает расположение, удалив круг со стрелкой переключатель. Вы все еще можете развернуть / свернуть содержание с помощью мыши или клавиатуры.
- Нижняя / Правая кнопка (ExpanderBottomRightButtonStyle) настраивает макет, поместив круг со стрелкой переключатель на дно / правой части заголовка.
Исходный код
Вы можете найти молнии файле проекта:
Заключение
Expander был на ключевые слова в мой блог. Это очень полезно контроля и относительно трудно настроить. Надеюсь этот пост поможет вам в использовании и настройке Expander. Спасибо!










Г-н @ Запороть
Для других лиц, желающих сделать это, лучшее, что я мог сделать, это установить видимость контроля внутри расширителя для рухнул в XAML, а затем подключили разворачивать и сворачивать событий контроля расширителя родителей и настроить видимость контроля внутри расширителя Видимый (в расширенных событий) и рухнула (в свернутом события). Это дает немного короче, исчезают в силе, и исчезать ушла полностью, но по крайней мере, раскладка работает нормально.
Fadeexpanderstyle велик, кроме того, что он требует высота содержимого подвергаться в то время как расширитель-прежнему находится в "свернутом" режиме. Таким образом, это означает, что вы не можете положить несколько расширителей в вертикальном StackPanel. Есть ли (простоватая) изменения в стиле, чтобы высота расширителя стиль fadeexpanderstyle быть 0, когда рухнула?
Привет Нин,
Можно ли заменить значок кнопки Expander с чем-то еще. У вас есть пример для этого. Помощь высоко ценится.
С уважением,
Sanket
Спасибо за этот великий контроля, но я предлагаю изменить следующее:
Если поставить расширить направления "ExpandRight" и содержание свернуто, стрелки переключения точек кнопка влево. Это немного противно. Я предлагаю установить контроль, позволяя стрелке переключатель указывает, по умолчанию в правильном направлении, когда содержание рухнул в ExpandRight государства.
Когда содержимое рухнул такое поведение было бы лучше для пользователя, потому что тогда стрелки переключения точек кнопки, что направление, в котором содержание появится.
С наилучшими пожеланиями из электронных LawBot
(Гамбург, Германия)
Высоту заголовка расширитель изменилось в версии декабре. Как я могу изменить его - я не могу найти Высота собственности на HeaderedContentControl.Header?
Есть ли у вас примеры анимации выпадающих расширителя? Мне нужен расширитель начинается как нераскрытое, затем постепенно раскрывается в полной высоты ContentControl. Fade In / Out и масштаб In / Out хороши, но они требуют расширитель для начала в полный рост.
Привет Нин,
Спасибо за обновление. Я надеялся найти пример с "кнопка" на правой и это, кажется, чтобы сделать работу.
Спасибо,
Мартин