Partilhar via


Como: Specify a Custom Popup Position

Este exemplo mostra como especificar uma posição customizada para um controle Popup quando a propriedade Placement está definida como Custom.

Exemplo

Quando a propriedade Placement é definida como Custom, o Popup chama uma instância definida do delegado CustomPopupPlacementCallback. Este delegado retorna um conjunto pontos possíveis que são relativos ao canto superior esquerdo da área destino e do canto superior esquerdo do Popup. O posicionamento do Popup ocorre no ponto que oferecer melhor visibilidade.

O exemplo a seguir mostra como definir a posição de um Popup configurando a propriedade Placement para Custom. Também mostra com criar e atribuir um delegado CustomPopupPlacementCallback de forma a posicionar o Popup. O delegado de retorno de chamada returna dois objetos CustomPopupPlacement. Se o Popup está escondido pela borda de tela na primeira posição, o Popup é posicionado na segunda posição.

 <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);

For the complete sample, see Exemplo de posicionamento de Popup.

Consulte também

Conceitos

Visão geral de Pop-up

Referência

Popup

Outros recursos

Exemplos de Popup

Tópicos de como fazer popup