共用方式為


HOW TO:指定自訂 Popup 的位置

更新:2007 年 11 月

本範例說明當 Placement 屬性設定為 Custom 時,如何指定 Popup 控制項的自訂位置。

範例

Placement 屬性設定為 Custom 時,Popup 會呼叫 CustomPopupPlacementCallback 委派的已定義執行個體。這個委派會傳回一組相對於目標區域左上角和 Popup 左上角的可能點。在提供最佳可視性的點上,會放置 Popup

下列範例說明如何將 Placement 屬性設定為 Custom,藉以定義 Popup 的位置。它也說明如何建立並指派 CustomPopupPlacementCallback 委派,以便放置 Popup。回呼委派會傳回兩個 CustomPopupPlacement 物件。如果 Popup 在第一個位置上被畫面邊緣隱藏,就會將 Popup 放置在第二個位置上。

 <Popup Name="popup1"  
        PlacementTarget ="{Binding ElementName=myButton}" 
        Placement="Custom">
  <TextBlock Height="60" Width="200" 
             Background="LightGray"
             TextWrapping="Wrap">Popup positioned by using
  CustomPopupPlacement callback delegate</TextBlock>
</Popup>
public CustomPopupPlacement[] placePopup(Size popupSize,
                                           Size targetSize,
                                           Point offset)
{
    CustomPopupPlacement placement1 =
       new CustomPopupPlacement(new Point(-50, 100), PopupPrimaryAxis.Vertical);

    CustomPopupPlacement placement2 =
        new CustomPopupPlacement(new Point(10, 20), PopupPrimaryAxis.Horizontal);

    CustomPopupPlacement[] ttplaces =
            new CustomPopupPlacement[] { placement1, placement2 };
    return ttplaces;
}
popup1.CustomPopupPlacementCallback =
    new CustomPopupPlacementCallback(placePopup);

如需完整範例,請參閱快顯功能表位置範例

請參閱

概念

快顯功能表概觀

參考

Popup

其他資源

Popup 範例

Popup HOW TO 主題