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 类的其他属性和事件。