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