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);
如需完整範例,請參閱快顯功能表位置範例。