2009-12-01 7 views
1

J'ai un ContentControl composé de gauche à droite d'un bouton, d'une partition et d'un ComboBox. Je veux que la liste déroulante ComboBox s'aligne avec le côté gauche du contrôle par opposition au côté gauche de la liste déroulante. Impossible de trouver des documents sur le placement relatif, etc. Est-ce que quelqu'un a traité de cela? TIAWPF ComboBox DropDown Placement

Répondre

4

J'ai déjà fait quelque chose de similaire - j'ai fini par dériver de ComboBox, obtenant la partie popup du contrôle et utilisant le CustomPopupPlacementCallback pour le positionner. Quelque chose comme ça ...

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; 
    } 
} 
+0

Ça va le faire. Je vous remercie! – Brad