Avalonia使用默认弹窗

Avalonia中使用官方默认弹窗WindowNotificationManager

Views\MainWindow.axaml相关代码

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:ApplicationDemo.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ApplicationDemo.Views.MainWindow"
Icon="/Assets/avalonia-logo.ico"
Title="ApplicationDemo"> <Design.DataContext>
<vm:MainWindowViewModel />
</Design.DataContext> <Button Click="Button_OnClick">
卧槽你别点我
</Button>
</Window>

Views\MainWindow.axaml.cs相关代码

using Avalonia.Controls;
using Avalonia.Controls.Notifications;
using Avalonia.Controls.Primitives;
using Avalonia.Interactivity; namespace ApplicationDemo.Views; public partial class MainWindow : Window
{
private WindowNotificationManager? _manager; public MainWindow()
{
InitializeComponent();
} protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
_manager = new WindowNotificationManager(this) { MaxItems = 3 };
} private void Button_OnClick(object? sender, RoutedEventArgs e)
{
_manager?.Show(new Notification("错误", "账号或密码错误!", NotificationType.Error));
}
}

效果如图

在组件中使用WindowNotificationManager

修改Views\MainWindow.axaml相关代码

<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:ApplicationDemo.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="clr-namespace:ApplicationDemo.Views"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ApplicationDemo.Views.MainWindow"
Icon="/Assets/avalonia-logo.ico"
Title="ApplicationDemo"> <Design.DataContext>
<vm:MainWindowViewModel />
</Design.DataContext>
<StackPanel> <views:Demo></views:Demo>
<Button Click="Button_OnClick">
卧槽你别点我
</Button>
</StackPanel>
</Window>

新增Demo的UserControl组件,修改Demo.axaml代码

<UserControl xmlns="https://github.com/avaloniaui"
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="ApplicationDemo.Views.Demo">
<Button Click="Button_OnClick">组件点击按钮</Button>
</UserControl>

修改Demo.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Notifications;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml; namespace ApplicationDemo.Views; public partial class Demo : UserControl
{ private WindowNotificationManager? _manager; public Demo()
{
InitializeComponent();
} protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
{
base.OnAttachedToVisualTree(e);
var topLevel = TopLevel.GetTopLevel(this);
_manager = new WindowNotificationManager(topLevel){ MaxItems = 3};
} private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
} private void Button_OnClick(object? sender, RoutedEventArgs e)
{
_manager?.Show(new Notification("错误", "账号或密码错误!", NotificationType.Error));
}
}

效果如图

Avalonia使用默认弹窗的更多相关文章

  1. app唤起的完美解决方案,及阻止浏览器的默认弹窗行为

    https://stackoverflow.com/questions/10237031/how-to-open-a-native-ios-app-from-a-web-appvar frame = ...

  2. 不能设置sublime text 2 为默认编辑器

    今天遇到一个有趣的事情,当我设置 css 样式表的默认打开方式的时候,却始终无法设置成功,系统总是随机选取一种打开方式来打开文件.比如:pdf.DW.txt等方式. 我设置默认打开方式的步骤如下: 1 ...

  3. ArcGIS API for JavaScript 4.2学习笔记[14] 弹窗的位置、为弹窗添加元素

    这一节我们来看看弹窗的位置和弹窗上能放什么. 先一句话总结: 位置:可以随便(点击时出现或者一直固定在某个位置),也可以指定位置 能放什么:四种,文字.媒体(图片等).表格.附件. [Part I 位 ...

  4. 【WP8】扩展CM的WindowManager

    14-09-09更新:修复AppBar冲突bug 关于WindowManager,一直都很想写一篇博客分享一下,一直在忙别的,今天抽空把这个分享一下 在弹窗在移动开发是一个很常见的交互,很多时候我们都 ...

  5. js弹出层插件 -- weebox

    1.引入文件: 使用前需包含以下jquery.js.bgiframe.js.weebox.js.wee.css文件 2.基本用法举例如下: <script type="text/jav ...

  6. jquery.zclip—复制剪贴板(兼容各大浏览器)

    开始前说两句 WEB开发中,要让用户复制页面中的一段代码.URL地址等信息,为了避免用户拖动鼠标再进行右键复制操作而可能出现的差错,我们可以直接在页面中放置一个复制按钮,只需要轻轻一点这个复制按钮,内 ...

  7. 弹出框weeboxs 基本属性总结

    使用前需包含以下jquery.js.bgiframe.js.weebox.js文件 boxid: null, //设定了此值只后,以后在打开同样boxid的弹窗时,前一个将被自 动关闭 boxclas ...

  8. 基于百度地图SDK和Elasticsearch GEO查询的地理围栏分析系统(3)-前端实现

    转载自:http://www.cnblogs.com/Auyuer/p/8086975.html MoonLight可视化订单需求区域分析系统实现功能: 在现实生活中,计算机和互联网迅速发展,人们越来 ...

  9. MoonLight可视化订单需求区域分析系统前端

    MoonLight可视化订单需求区域分析系统实现功能: 在现实生活中,计算机和互联网迅速发展,人们越来越趋向于网络,于是我们就有了各种各样的系统,来帮助我们更好地生活.比如对于打车来说,我们也可以通过 ...

  10. linux下chromedriver的安装

    很多时候,发现phantomjs被一些网站屏蔽导致我们无法达到想要的结果,一方面phantomjs也停止维护,这时候们可以使用chromedriver(谷歌)或者firefoxdriver(火狐)来代 ...

随机推荐

  1. MinIO实现文件上传

    一.使用Docker安装minio docker run -d -p 9000:9000 -p 9001:9001 --name minio -e MINIO_ACCESS_KEY=qbb -e MI ...

  2. 使用Py2neo更新Neo4j中节点的属性值的正确姿势

    1 def findNode(name, graph): 2 matcher = NodeMatcher(graph) 3 m = matcher.match(name = name).first() ...

  3. CAP 8.0 版本发布通告 - CAP 7岁生日快乐!

    前言 今天,我们很高兴宣布 CAP 发布 8.0 版本正式版,从 2016 年 12 月 14 日CAP立项到 2023 年 12 月14 日发布 8.0 版本刚好满 7 年,祝 CAP 7 岁生日快 ...

  4. 直击云栖|践行数据化运维,云掣重新解读MSP

    2020年云栖大会百城汇·杭州站,云掣MSP专场圆满落幕! 本次云栖大会·云掣MSP专场以"数据智能,智能运维"为主题,主要聚焦企业云化转型演进趋势,云上运维全景监控以及云原生云环 ...

  5. Element UI的第一个程序(标签使用)

    1:Element UI 官方文档:https://element.faas.ele.me/ 2:Element UI是什么? 网站快速成型工具 Element,一套为开发者.设计师和产品经理准备的基 ...

  6. P6357 题解

    Luogu 题面 题目描述 给定一串长度为 \(n\) 的数字,数字为 \(0 \sim 9\) 之间的任意一个,下标从 \(1\) 记起. 然后进行 \(m\) 次区间查询,每次查找区间 \([l, ...

  7. 前端系列:ES6-ES12新语法

    目录 ECMAScript系列:简介 ECMAScript系列:ES6新特性 let 关键字 const 关键字 变量的解构赋值 模板字符串 简化对象写法 箭头函数 参数默认值 rest 参数 spr ...

  8. Spring Boot入坑-3-Maven简介

    概述 Maven是一个自动化构建工具 能够将支持Maven项目的依赖包从远程仓库拉取到本地仓库,并进行依赖管理 项目中通过pom.xml来描述项目,对项目依赖进行管理与配置 给项目提供编译.打包.安装 ...

  9. 关于echarts+vue频繁刷新的造成的内存增长问题

    前言 关于解决echarts+ws多次数据刷新渲染,内存增长溢出的尝试. 记录一下,便于下次使用有参考 方法 关闭echarts动画 tooltip的动画设置为false.(echarts动画会缓存, ...

  10. 探索Reactor网络模型在当今应用领域的革新

    本文分享自华为云社区<驾驭网络技术的未来:探索Reactor网络模型在当今应用领域的革新>,作者: Lion Long . 本文介绍了Linux网络设计中的Reactor网络模型及其在实际 ...