WPF组合框下拉列表放置
我有一个ContentControl,从左到右由按钮、分区和组合框组成。我希望ComboBox下拉列表与控件的左侧对齐,而不是与ComboBox的左侧对齐。似乎找不到关于相对位置等的文档。有人处理过这个问题吗?TIA我以前也做过类似的事情-我最终从ComboBox派生,获得控件的弹出部分并使用来定位它。像这样的WPF组合框下拉列表放置,wpf,combobox,drop-down-menu,location,Wpf,Combobox,Drop Down Menu,Location,我有一个ContentControl,从左到右由按钮、分区和组合框组成。我希望ComboBox下拉列表与控件的左侧对齐,而不是与ComboBox的左侧对齐。似乎找不到关于相对位置等的文档。有人处理过这个问题吗?TIA我以前也做过类似的事情-我最终从ComboBox派生,获得控件的弹出部分并使用来定位它。像这样的 class MyComboBox : ComboBox { public override void OnApplyTemplate() { base.O
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;
}
}
我以前也做过类似的事情——我最终从ComboBox派生,得到控件的弹出部分并使用来定位它。像这样的
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;
}
}