2009-12-01 66 views
1

我有一個按鈕,分區和組合框從左到右的ContentControl。我希望ComboBox下拉列表與控件的左側相對,而不是組合框的左側。似乎無法找到關於相對位置的文檔等。有人處理過這個問題嗎? TIAWPF ComboBox DropDown Placement

回答

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

這就行了。謝謝! – Brad 2009-12-01 13:31:34