Указание направления всплывающего окна со списком Silverlight (выпадающее меню) - PullRequest
3 голосов
/ 01 марта 2011

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

1 Ответ

2 голосов
/ 28 мая 2011

Первым шагом является определение собственного шаблона 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.

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