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