3

是否可以使silverlight组合框“下拉”,即默认显示组合框上方的弹出窗口而不是波纹管?

4

1 回答 1

2

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

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

幸运的是, Kent Boogaart 写了一个附加行为,添加了这个功能,它的使用方式如下:

<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 的容器的名称在哪里。

于 2011-05-28T05:38:27.503 回答