Указание направления всплывающего окна со списком Silverlight (раскрывающееся окно)

Можно ли сделать поле со списком silverlight «выпадающим», т.е. отображать всплывающее окно над полем со списком, а не ниже, как по умолчанию?


person Fubzot    schedule 01.03.2011    source источник


Ответы (1)


Первым шагом является определение вашего собственного шаблона ComboBox, который содержит определение всплывающего окна. Отредактируйте копию, например, с помощью Blend.

Однако размещение этого всплывающего окна выше — непростая задача, поскольку всплывающие окна Silverlight не имеют свойств Placement или PlacementTarget, как в WPF, которые позволили бы отображать их выше.

К счастью, Кент Бугаарт написал прикрепленное поведение, которое добавляет эта возможность, и она используется следующим образом:

<Popup b:PopupPlacement.PlacementTarget="{Binding ElementName=ContentPresenterBorder}">
    <b:Popup.PreferredOrientations>
        <b:PopupOrientationCollection>
            <b:PopupOrientation Placement="Top" HorizontalAlignment="Center"/>
            <b:PopupOrientation Placement="Bottom" HorizontalAlignment="Center"/>
            <b:PopupOrientation Placement="Right" VerticalAlignment="Center"/>
            <b:PopupOrientation Placement="Right" VerticalAlignment="TopCenter"/>
        </b:PopupOrientationCollection>
    </b:Popup.PreferredOrientations>

    <!--Popup content with the ItemPresenter-->
</Popup>

Где ContentPresenterBorder — это имя контейнера, содержащего ToggleButton ComboBox.

person Mart    schedule 28.05.2011
comment
Можно ли разместить код в другом месте? Адрес skydrive.live.com в приведенной выше ссылке заблокирован прокси-сервером моей компании... (или, возможно, просто вставьте источник в отдельный ответ?Это может быть лучше, если файл когда-либо будет удален/перемещен/и т. д.) - person Ismail Degani; 03.04.2013
comment
Если ваша компания блокирует сайты Microsoft, пока вы работаете над их технологиями, у вас проблемы :) Файлов слишком много, чтобы вставлять их сюда, какое место вам подойдет? Или по электронной почте? - person Mart; 03.04.2013
comment
Спасибо, Март, я согласен, что блокировка сайтов обычно не очень продуктивна. В итоге я отправил себе файлы по электронной почте из дома, так что все готово. - person Ismail Degani; 05.04.2013