WPF ComboBox DropDown放置

时间:2009-12-01 12:19:29

标签: wpf combobox drop-down-menu location

我有一个ContentControl,从左到右包含一个Button,分区和一个ComboBox。我希望ComboBox下拉列表与控件的左侧对齐,而不是组合框的左侧。似乎无法找到关于相对位置等的文档。任何处理此问题的人? TIA

1 个答案:

答案 0 :(得分:4)

之前我做过类似的事情 - 我最终从ComboBox派生,得到控件的弹出部分并使用CustomPopupPlacementCallback来定位它。像这样......

class MyComboBox : ComboBox
{
    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();

        var popup = (Popup)Template.FindName("PART_Popup", this);
        popup.Placement = PlacementMode.Custom;
        popup.CustomPopupPlacementCallback = placePopup;
    }

    private CustomPopupPlacement[] placePopup(Size popupSize, Size targetSize, Point offset)
    {
        var placements = new[] { new CustomPopupPlacement() };
        placements[0].Point = // position the drop-down here!
        return placements;
    }
}