指定Silverlight组合框弹出方向(dropup)

时间:2011-03-01 11:03:00

标签: silverlight combobox direction

是否有可能使Silverlight组合框“掉线”,即在组合框上方显示弹出窗口,而不是默认显示?

1 个答案:

答案 0 :(得分:2)

第一步是定义自己的ComboBox模板,其中包含Popup的定义。例如,使用Blend编辑副本。

但是,将弹出窗口放在上面并不是一件容易的事,因为Silverlight Popups没有像WPF中那样允许在上面显示它的PlacementPlacementTarget属性。

幸运的是Kent Boogaart wrote an Attached Behavior添加了此功能,它的使用方式如下:

<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是包含ComboBox的ToggleButton的容器的名称。