WPF - Popup 弹出窗口控件
Popup 是一个在应用程序窗口范围内的现有内容之上显示内容的控件。 它是对其他内容的临时显示。 Popup类的层次继承如下 −
Popup 类常用属性
| 序号 | 属性和描述 |
|---|---|
| 1 | Child 获取或设置要在弹出窗口中托管的内容。 |
| 2 | ChildProperty 获取 Child 依赖属性的标识符。 |
| 3 | ChildTransitions 获取或设置应用于 Popup 子内容的 Transition 样式元素的集合。 |
| 4 | ChildTransitionsProperty 标识 ChildTransitions 依赖属性。 |
| 5 | HorizontalOffset 获取或设置应用程序窗口左侧与弹出窗口左侧之间的距离。 |
| 6 | HorizontalOffsetProperty 获取 HorizontalOffset 依赖项属性的标识符。 |
| 7 | IsLightDismissEnabled 获取或设置一个值,该值确定如何关闭弹出窗口。 |
| 8 | IsLightDismissEnabledProperty 标识 IsLightDismissEnabled 依赖属性。 |
| 9 | IsOpen 获取或设置当前是否在屏幕上显示弹出窗口。 |
| 10 | IsOpenProperty 获取 IsOpen 依赖属性的标识符。 |
| 11 | VerticalOffset 获取或设置应用程序窗口顶部与弹出窗口顶部之间的距离。 |
| 12 | VerticalOffsetProperty 获取 VerticalOffset 依赖项属性的标识符。 |
Popup类常用事件
| 序号 | 事件和描述 |
|---|---|
| 1 | Closed 当 IsOpen 属性设置为 false 时触发。 |
| 2 | Opened 当 IsOpen 属性设置为 true 时触发。 |
示例
让我们创建一个名为 WPFPopupControl 的新 WPF 项目。
当您查看工具箱时,您会发现没有弹出控件。 但您可以通过 XAML 将弹出控件添加到您的应用中。
以下示例演示如何使用 Popup 控件。 下面是创建并初始化 Popup 控件和 CheckBox 的 XAML 代码。 当用户选中复选框时,它会显示一个弹出窗口。
<Window x:Class = "WPFPopupControl.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local = "clr-namespace:WPFPopupControl"
mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<CheckBox Name = "PCheckBox" Margin = "198,94,208,194" Content = "Checked Me" />
<Popup IsOpen = "{Binding ElementName = PCheckBox,Path = IsChecked}"
PlacementTarget = "{Binding ElementName = PCheckBox}"
AllowsTransparency = "True" PopupAnimation = "Slide">
<Canvas Width = "125" Height = "100" Background = "LightGray">
<Canvas.RenderTransform>
<RotateTransform x:Name = "theTransform" />
</Canvas.RenderTransform>
<TextBlock TextWrapping = "Wrap" Foreground = "Blue"
Text = "Hi, this is Popup" />
</Canvas>
</Popup>
</Grid>
</Window>
当您编译并执行上述代码时,将产生以下输出。 当您勾选该复选框时,会出现一个弹出窗口; 当您取消选中该复选框时,弹出窗口将消失。
我们建议您执行上面的示例代码并尝试 popup 类的其他属性和事件。

