Przegląd Okna podręczne

Kontrolka Popup umożliwia wyświetlanie zawartości w osobnym oknie, które unosi się w bieżącym oknie aplikacji względem wyznaczonego elementu lub współrzędnej ekranu. W tym temacie przedstawiono kontrolkę Popup i podano informacje o jego użyciu.

Co to jest okno podręczne?

Kontrolka Popup wyświetla zawartość w osobnym oknie względem elementu lub punktu na ekranie. Gdy właściwość jest widoczna Popup , właściwość jest ustawiona IsOpen na truewartość .

Uwaga

Obiekt Popup nie jest otwierany automatycznie, gdy wskaźnik myszy jest przesuwany nad obiektem nadrzędnym. Jeśli chcesz automatycznie otworzyć klasę PopupToolTip lub ToolTipService . Aby uzyskać więcej informacji, zobacz ToolTip Overview (Omówienie etykietki narzędzia).

Tworzenie okna podręcznego

W poniższym przykładzie pokazano, jak zdefiniować kontrolkę Popup , która jest elementem podrzędnym kontrolki ToggleButton . Ponieważ element ToggleButton może zawierać tylko jeden element podrzędny, w tym przykładzie tekst kontrolek ToggleButton i Popup w obiekcie StackPanel. Zawartość Popup obiektu jest wyświetlana w osobnym oknie, które unosi się nad oknem aplikacji w pobliżu powiązanej ToggleButton kontrolki.

<ToggleButton x:Name="TogglePopupButton" Height="30" Width="150" HorizontalAlignment="Left">
    <StackPanel>
        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">
            <Run Text="Is button toggled? " />
            <Run Text="{Binding IsChecked, ElementName=TogglePopupButton}" />
        </TextBlock>

        <Popup Name="myPopup" IsOpen="{Binding IsChecked, ElementName=TogglePopupButton}">
            <Border BorderThickness="1">
                <TextBlock Name="myPopupText" Background="LightBlue" Foreground="Blue" Padding="30">
                Popup Text
                </TextBlock>
            </Border>
        </Popup>
    </StackPanel>
</ToggleButton>

Kontrolki implementujące wyskakujące okienko

Kontrolki można tworzyć Popup w innych kontrolkach. Następujące kontrolki implementują kontrolkę Popup dla określonych zastosowań:

Kontrolka Popup udostępnia funkcje, które umożliwiają dostosowanie jego zachowania i wyglądu. Można na przykład ustawić otwarte i bliskie zachowanie, animację, nieprzezroczystość i efekty mapy bitowej oraz Popup rozmiar i położenie.

Zachowanie otwierania i zamykania

Kontrolka Popup wyświetla jego zawartość, gdy właściwość jest ustawiona IsOpen na true. Domyślnie pozostaje otwarty, Popup dopóki właściwość nie zostanie ustawiona IsOpen na falsewartość . Można jednak zmienić domyślne zachowanie, ustawiając StaysOpen właściwość na false. Po ustawieniu tej właściwości na falsewartość Popup okno zawartości zawiera przechwytywanie myszy. Utraca Popup przechwytywanie myszy, a okno zamyka się, gdy zdarzenie myszy występuje poza oknem Popup .

Zdarzenia Opened i Closed są zgłaszane po otwarciu Popup lub zamknięciu okna zawartości.

Animacja

Kontrolka Popup ma wbudowaną obsługę animacji, które są zwykle skojarzone z zachowaniami, takimi jak zanikanie i przesuwanie. Możesz włączyć te animacje, ustawiając PopupAnimation właściwość na PopupAnimation wartość wyliczenia. Aby Popup animacje działały poprawnie, należy ustawić AllowsTransparency właściwość na true.

Możesz również zastosować animacje, takie jak Storyboard w kontrolce Popup .

Nieprzezroczystość i efekty mapy bitowej

Właściwość Opacity kontrolki Popup nie ma wpływu na jej zawartość. Domyślnie Popup okno zawartości jest nieprzezroczyste. Aby utworzyć przezroczysty Popupelement , ustaw AllowsTransparency właściwość na truewartość .

Zawartość elementu Popup nie dziedziczy efektów map bitowych, takich jak DropShadowBitmapEffect, które są bezpośrednio ustawiane na kontrolce Popup lub w żadnym innym elemercie w oknie nadrzędnym. Aby efekty mapy bitowej pojawiały się na zawartości Popupelementu , należy ustawić efekt mapy bitowej bezpośrednio na jego zawartość. Jeśli na przykład element podrzędny elementu Popup to StackPanel, ustaw efekt mapy bitowej na StackPanel.

Domyślnie element Popup ma automatycznie rozmiar zawartości. W przypadku automatycznego określania rozmiaru niektóre efekty mapy bitowej mogą być ukryte, ponieważ domyślny rozmiar obszaru ekranu zdefiniowanego dla Popup zawartości nie zapewnia wystarczającej ilości miejsca na wyświetlanie efektów mapy bitowej.

Popup zawartość może być również zaciemniana po ustawieniu RenderTransform elementu w zawartości. W tym scenariuszu część zawartości może być ukryta, jeśli zawartość przekształconego Popup wykracza poza obszar oryginalnego Popupelementu . Jeśli efekt mapy bitowej lub przekształcenie wymaga więcej miejsca, możesz zdefiniować margines wokół Popup zawartości, aby zapewnić więcej obszaru dla kontrolki.

Definiowanie położenia okna podręcznego

Wyskakujące okienko można ustawić, PlacementTargetustawiając właściwości , PlacementRectangle, Placement, HorizontalOffseti VerticalOffsetProperty . Aby uzyskać więcej informacji, zobacz Zachowanie umieszczania w oknie podręcznym. Gdy Popup jest wyświetlany na ekranie, nie zmienia położenia, jeśli jego element nadrzędny jest zmieniany.

Dostosowywanie położenia okna podręcznego

Możesz dostosować umieszczanie kontrolki Popup , określając zestaw współrzędnych, które są względem PlacementTarget miejsca, w którym ma Popup się pojawić.

Aby dostosować umieszczanie Placement , ustaw właściwość na Custom. Następnie zdefiniuj delegata CustomPopupPlacementCallback, który zwraca zestaw możliwych punktów umieszczania i osi podstawowych (w kolejności preferencji) dla klasy Popup. Punkt, który pokazuje największą część obiektu Popup , jest automatycznie wybierany. Aby zapoznać się z przykładem, zobacz Określanie niestandardowego położenia okna podręcznego.

Kontrolka Popup nie ma własnego drzewa wizualnego. Zamiast tego zwraca rozmiar 0 (zero), gdy MeasureOverride wywoływana jest metoda Popup . Jednak po ustawieniu IsOpen właściwości Popuptruena , zostanie utworzone nowe okno z własnym drzewem wizualnym. Nowe okno zawiera Child zawartość elementu Popup. Szerokość i wysokość nowego okna nie może być większa niż 75 procent szerokości lub wysokości ekranu.

Kontrolka Popup utrzymuje odwołanie do jego Child zawartości jako logicznego elementu podrzędnego. Po utworzeniu nowego okna zawartość Popup staje się elementem podrzędnym wizualizacji okna i pozostaje logicznym elementem podrzędnym .Popup Z drugiej strony pozostaje Popup logicznym elementem nadrzędnym jego Child zawartości.

Zobacz też