XAML - 弹出窗口



弹出窗口在应用程序窗口的范围内,显示在现有内容之上的内容。它是在其他内容上临时显示的内容。Popup 类的层次继承如下:

Popup Hierarchy

属性

序号 属性及说明
1

Child

获取或设置要在弹出窗口中托管的内容。

2

ChildProperty

获取 Child 依赖属性的标识符。

3

ChildTransitions

获取或设置应用于 Popup 子内容的 Transition 样式元素集合。

4

ChildTransitionsProperty

标识 ChildTransitions 依赖属性。

5

HorizontalOffset

获取或设置应用程序窗口左侧与弹出窗口左侧之间的距离。

6

HorizontalOffsetProperty

获取 HorizontalOffset 依赖属性的标识符。

7

IsLightDismissEnabled

获取或设置一个值,该值决定如何关闭 Popup。

8

IsLightDismissEnabledProperty

标识 IsLightDismissEnabled 依赖属性。

9

IsOpen

获取或设置弹出窗口当前是否显示在屏幕上。

10

IsOpenProperty

获取 IsOpen 依赖属性的标识符。

11

VerticalOffset

获取或设置应用程序窗口顶部与弹出窗口顶部之间的距离。

12

VerticalOffsetProperty

获取 VerticalOffset 依赖属性的标识符。

事件

序号 事件及说明
1

Closed

当 IsOpen 属性设置为 false 时触发。

2

Opened

当 IsOpen 属性设置为 true 时触发。

示例

以下示例演示如何使用 Popup 控件。以下是创建和初始化 Popup 控件和 CheckBox 的 XAML 代码。当用户选中 CheckBox 时,它将显示一个 Popup。

<Window x:Class = "XAMLPopup.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
   Title = "MainWindow" Height = "350" Width = "604">
	
   <Grid>
      <StackPanel> 
         <CheckBox Name = "PCheckBox" Margin = "10,10,484,500" Content = "Checked Me" Height = "18"/> 
			
         <Popup IsOpen = "{Binding ElementName = PCheckBox,Path = IsChecked}" 
            PlacementTarget = "{Binding ElementName = PCheckBox}"
            AllowsTransparency = "True" PopupAnimation = "Slide"
            HorizontalOffset = "150" VerticalOffset = "100">
			
            <Canvas Width = "100" Height = "100" Background = "LightGray" Margin = "5">
               <Canvas.RenderTransform> 
                  <RotateTransform x:Name = "theTransform" />
               </Canvas.RenderTransform> 
			
               <TextBlock TextWrapping = "Wrap" Foreground = "Blue" Text = "Hi, this is Popup"/>
            </Canvas> 
         </Popup>
      </StackPanel>
   </Grid> 
   
</Window>

编译并执行上述代码后,将产生以下输出:

Popup Output

我们建议您执行上述示例代码,并尝试其他一些属性和事件。

xaml_controls.htm
广告