WPF弹出层

这篇具有很好参考价值的文章主要介绍了WPF弹出层。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用WPF窗口作为弹出层

前几天领导让我在WPF的查询页面添加一个弹出层,防止用户查询大量数据时疯狂点击查询按钮或其他地方,我想了想最后决定用一个新的窗口做弹出层,WPF上面的控件都是使用 “Material Design In XAML Toolkit” 做的。

我自己做的弹出层非常简单,就是一个窗体上放了一个会转的半圆和一个Label控件
WPF弹出层
但是运行时发现不太正常,点击主窗口时,弹出层会被主窗口覆盖在下面
WPF弹出层
然后设置了属性

//loadingWindow是弹出窗口的名称
loadingWindow.Owner = this;

设置完成后,发现弹出窗口有白色的背景色
WPF弹出层
然后设置了Windows窗体属性:

Background="#00000000"

最终效果:
WPF弹出层
最后,上代码
主窗体 中添加弹出层对象:

public partial class MainWindow : Window
 {
 	private LoadingWindow loadingWindow = new LoadingWindow();//创建对象
 	public MainWindow()
 	{
 	}
 }

主窗体 打开弹出层代码:

private void StartLoading()
{
	loadingWindow.Owner = this;//设置弹出层在主窗体上方
	loadingWindow.Show();//打开弹出层
	IsEnabled = false;//设置主窗体不可用
}

主窗体 关闭弹出层代码:

private void StopLoading()
{
	loadingWindow.Hide();//弹出层隐藏(如果直接Close的话,只能打开弹出层一次)
	IsEnabled = true;//主窗体可用
}

主窗体 使用弹出层(样例):

private void btn_SearchinReciveGoods_Click(object sender, RoutedEventArgs e)
{
	StartLoading();//打开弹出层
	try
	{
		using (SqlConnection con = new SqlConnection(conStr))
		{
			#region 查询、绑定数据到控件
			string sqlCmd = "SELECT * FROM Table";
			using (SqlDataAdapter sda = new SqlDataAdapter(sqlCmd, con))
			{
				DataSet ds = new DataSet();
				_ = sda.Fill(ds);
				dg_ReciveGood.DataContext = ds.Tables[0];
			}
			#endregion
			StopLoading();//绑定完成后,关闭弹出层
		}
	}
	catch (Exception)
	{
		StopLoading();//数据查询失败或其他原因导致异常时,关闭弹出层
		throw;
	}
}

弹出层 XAML代码(使用了"Material Design In XAML Toolkit" 控件)文章来源地址https://www.toymoban.com/news/detail-442242.html

<Window x:Class="IG_SIMS_PAD.LoadingWindow"
        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:IG_SIMS_PAD"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        mc:Ignorable="d"
        Title="LoadingWindow" Height="200" Width="250" WindowStyle="None" WindowStartupLocation="CenterScreen" Background="#00000000"  Foreground="{x:Null}" AllowsTransparency="True">
    <Grid>
        <materialDesign:Card UniformCornerRadius="14" Padding="4" Margin="35,25,35,35">
            <ProgressBar Style="{StaticResource MaterialDesignCircularProgressBar}" Value="50" IsIndeterminate="True"  Height="Auto" Margin="67,21,67,71" Width="Auto" />
        </materialDesign:Card>
        <Label Content="loading..."  VerticalAlignment="Top" RenderTransformOrigin="0.148,0.504" Margin="77,108,77,0" FontSize="20" Height="34"/>
    </Grid>
</Window>

到了这里,关于WPF弹出层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序——使用 Vant 组件实现 Popup 弹出层(各位置弹出详细代码分享)

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:微信小程序学习分享 ✨特色专栏:国学周更-心性养成之路 🥭本文内容:微信小程序——使

    2024年02月08日
    浏览(67)
  • 前几天面了个30岁的测试员,年薪50w问题基本都能回答上,应该刷了不少八股文···

    互联网行业竞争是一年比一年严峻,作为测试工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯等大厂.....) 所以,大家就迎来了一堆问题: 自己目前的能力能不能够支撑自己晋升?如

    2024年02月05日
    浏览(42)
  • PS 处理图层弹出提示 “无法完成请求,因为智能对象不能直接进行编辑“ 解决办法

    我们刚导进来的图层 直接处理 就会弹出信息 (无法完成请求,因为智能对象不能直接进行编辑) 只需要在右侧 图层工具中找到这个在编辑的图层 点击鼠标右键 在右键菜单中 选择 栅格化图层 然后 再次编辑 就OK了

    2024年02月12日
    浏览(163)
  • uni-app使用uView打开弹出层后输入框聚焦时placeholder错位问题

    这里就不放效果了,大概意思就是在使用uView的popus时,在底部弹出后,如果弹窗中的输入框会造成一瞬间的placeholder文字错位,这个问题的主要是因为uView安全区适配导致 uView相关文档 popus源码 它会自动判断在并且在IPhone X等机型的时候,给元素加上一个适当底部内边距,从

    2024年02月19日
    浏览(49)
  • Uniapp多选Popup(弹出层)

    uniapp中多选组件很少,故个人简单开发了一个,可简单使用,也可根据个人需求稍微改进 单选 多选(默认) 限制选择数量 默认选中 禁用选项 属性 默认值 说明 single false true为开启单选,否则为多选 max - 可选最多项 maxMessage - 超出最多项的提示信息,没有的话则默认清掉最

    2024年01月20日
    浏览(40)
  • layui(3)——内置模块弹出层

      使用模块 layer 参数有: type :layer提供了5种层类型。可传入的值有:0(信息框,默认)   1(页面层)    2(iframe层)    3(加载层)     4(tips层) title   :标题  自定义标题区域样式,那么你可以title: [\\\'文本\\\', \\\'\\\'],数组第二项可以写任意css样式 content   :内容

    2024年02月08日
    浏览(53)
  • Layui + Flask | 弹出层(组件篇)(04)

    提示:点击阅读原文体验更佳 https://layui.dev/docs/2.8/layer/ 弹出层组件 layer 是 Layui 最古老的组件,也是使用覆盖面最广泛的代表性组件。在实现网页弹出层的首选交互方案,使用的非常频繁。 layer.open(options); 参数 options : 基础属性配置项。 打开弹层的核心方法,其他不同类型

    2024年02月09日
    浏览(45)
  • layer弹出层点击关闭按钮刷新父页面

    在弹出层页面,,找到layer关闭按钮,写一个关闭事件,里面去执行js方法。 例:页面写个a标签方便调用:a id=“hidalayerclose” style=“display: none;” οnclick=“fureload()”

    2024年04月22日
    浏览(42)
  • Flutter:自定义组件的上下左右弹出层

    最近要使用Flutter实现一个下拉菜单,需求就是,在当前组件下点击,其下方弹出一个菜单选项,如下图所示: 实现起来,貌似没什么障碍,在Flutter中本身就提供了弹出层PopupMenuButton组件和showMenu方法,于是开搞,代码如下: 直接使用showMenu也行,代码如下: PopupMenuButton运行

    2024年02月10日
    浏览(72)
  • 原生微信小程序实现弹出层效果

    WXML JS WXSS 效果图

    2024年02月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包