Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este exemplo mostra como especificar uma posição personalizada para um Popup controle quando a Placement propriedade é definida como Custom.
Exemplo
Quando a propriedade Placement é definida como Custom, a instância definida do delegado Popup é chamada por CustomPopupPlacementCallback. Esse delegado retorna um conjunto de possíveis pontos relativos ao canto superior esquerdo da área de destino e ao canto superior esquerdo do Popup. O Popup posicionamento ocorre no ponto que fornece a melhor visibilidade.
O exemplo a seguir mostra como definir a posição de um Popup definindo a Placement propriedade como Custom. Ele também mostra como criar e atribuir um CustomPopupPlacementCallback delegado para posicionar o Popup. O delegado de retorno de chamada retorna dois CustomPopupPlacement objetos. Se o Popup estiver oculto por uma borda de tela na primeira posição, o Popup será colocado 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;
}
Public Function placePopup(ByVal popupSize As Size, ByVal targetSize As Size, ByVal offset As Point) As CustomPopupPlacement()
Dim placement1 As New CustomPopupPlacement(New Point(-50, 100), PopupPrimaryAxis.Vertical)
Dim placement2 As New CustomPopupPlacement(New Point(10, 20), PopupPrimaryAxis.Horizontal)
Dim ttplaces() As CustomPopupPlacement = { placement1, placement2 }
Return ttplaces
End Function
popup1.CustomPopupPlacementCallback =
new CustomPopupPlacementCallback(placePopup);
popup1.CustomPopupPlacementCallback = New CustomPopupPlacementCallback(AddressOf placePopup)
Para o exemplo completo, consulte Exemplo de Posicionamento Pop-up.
Consulte também
.NET Desktop feedback