本文来告诉大家如何在 WPF 应用 HOST 了 UWP 的 InkCanvas 控件时,给 InkCanvas 控件设置背景色,加上按钮等业务功能的实现方法 在上一篇博客有告诉大家如何在 WPF 里面使用上...包,请参阅 WPF 引用 UWP 控件 不打包为 MSIX 分发的方法 在开始之前,需要了解的是 UWP 的 InkCanvas 控件是没有背景色这个属性的,也就是说 UWP 的 InkCanvas 控件需要依靠外层的容器或者背后的元素给的颜色作为背景色...UWP 的控件挡住 因此为了给 UWP 的 InkCanvas 控件加上背景色,就需要采用在 WPF 里面 HOST 自定义的 UWP 控件的科技。...InkCanvas 控件添加背景色的方法上,在新建的 UWP 控件项目里面,添加一个自定义的控件,如 CustomInkControl.xaml 控件 在这个控件里面的 XAML 添加如下代码 后的作品务必以相同的许可发布。
5.2 错误使用Acrylic Acrylic有些难用,一般来说Acrylic只应该作为背景使用在菜单、弹出遮罩或Flyout等,程序的主体区域的背景不可以使用Acrylic。...作为例外,Widget或轻量级应用可以在整个应用的背景使用Acrylic,像计算器应用那样。 ?...这时手机市场已经可以忽略不计,放弃了各种Metro的特色后,勉强拼凑起来的ModernUI在Windows10桌面上运行起来还不错。但没有特色的ModernUI已经没有人去模仿了。...例如我就觉得Reveal样式的按钮婆婆妈妈拖拖拉拉软软绵绵的没有手感,Pressed状态慢悠悠做动画,而鼠标释放后再次慢悠悠地做动画,几秒后才回到PointerOver状态,这使整个操作看起来反应迟钝。...按钮的天职是反应迅速,这样才能给用户愉悦的操作感受。单独地看这个按钮样式的话除了炫技术还不如普通按钮,希望以后可以改进吧。 ?
称为 XAML Hot Reload,此新名称旨在更好地与该功能的实际工作方式保持一致(因为进行XAML编辑后无需暂停)并与 Xamarin.Forms 中的相似功能匹配。...进行此更改后,选择器将在选择第一个元素后停止选择元素。这使其与类似的工具(例如F12浏览器工具)保持一致,并且基于客户的反馈。...虽然这是新的默认设置,但仍然可以通过实时可视化树本身内的按钮或通过新设置(位于:选项>调试>常规>启用我的XAML)返回到以前的行为。 ?...弹出 XAML 编辑器作为与设计器(v16.4)分开的单独窗口: 现在,可以使用 XAML 选项卡旁边的新的 Popup XAML 按钮轻松地将 XAML 设计器及其基础 XAML 编辑器拆分为单独的窗口...单击后,XAML 设计器将最小化其附加的 XAML 选项卡,并仅针对 XAML 编辑器视图弹出一个新窗口。您可以将此新窗口移动到 Visual Studio 中的任何显示或选项卡组。
本文将分享一个我自制的标题栏按钮样式,使其与 UWP 原生应用一模一样(同时支持自定义)。...不过,如果自定义了窗口的背景色,那么标题栏那三大金刚键的背景就显得很突兀。...由于 Win32 原生的方法顶多只支持修改标题栏按钮的背景色,而不支持让标题栏按钮全透明,所以我们只能完全由自己来实现这三个按钮的功能了。...自绘标题栏按钮 标题栏按钮并不单独存在,所以我直接做了一整个窗口样式。使用此窗口样式,窗口能够模拟得跟 UWP 一模一样。 以下是模拟的效果: ? ▲ WPF 模拟版本 ?...▲ UWP 原生版本(为避免说我拿同一个应用附图,我选了微软商店应用对比) 为了使用到这样近乎原生的窗口样式,我们需要两个文件。一个放 XAML 样式,一个放样式所需的逻辑代码。
创建主页面 和使用 win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 差不多,先创建一个项目,然后在这个项目的 MainWindow.xaml 放一个 Frame 作为跳转 创建 ViewModel...找到 ViewModel 现在在创建的 ViewModel 推荐在 App.xaml 作为资源,因为 WPF 的页面跳转没有和 UWP 一样可以获得参数,需要通过自己的方式拿到。...修改 A 页面的背景,可以用来看到被跳转到 A 页面 ? 本文使用的是上面的第一个方式拿到 ViewModel 所以需要在 A 页面添加一些代码获得 ViewModel 。...NavigateViewModel["xx"] 的方法获得 ViewModel 跳转命令 可以看到在 A 页面有跳转按钮,点击这个按钮可以用来跳转到 B 页面 因为界面很简单,我就不告诉大家了。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
安装 Behaviors 请使用 Nuget 安装,可以输入下面的代码进行安装 Install-Package Microsoft.Xaml.Behaviors.Uwp.Managed 或者搜索 Microsoft.Xaml.Behaviors..." 不需要在后台写什么,直接运行可以看到在 按钮可以使用时的图片 ?...按钮无法使用时的图片 ? 请使用 DataTriggerBehavior 的Binding 连到需要修改的属性,在 Value 判断他的值。...1.0 : 0.5; 参见:Trigger element (XAML) is not supported in a UWP project ---- 本文会经常更新,请阅读原文:...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://lindexi.gitee.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
ButtonBackgroundColor 对应 GetButtonBackgroundColor(page) 和 SetButtonBackgroundColor(page, color) - 获取和设置 TitleBar 的右上角三个按钮的背景色...GetButtonHoverBackgroundColor(page) 和 SetButtonHoverBackgroundColor(page, color) - 获取和设置 TitleBar 的右上角三个按钮的鼠标悬浮背景色...GetButtonInactiveBackgroundColor(page) 和 SetButtonInactiveBackgroundColor(page, color) - 获取和设置 TitleBar 的右上角三个按钮在窗口非活动状态时的背景色...GetButtonPressedBackgroundColor(page) 和 SetButtonPressedBackgroundColor(page, color) - 获取和设置 TitleBar 的右上角三个按钮点击时的背景色...Page x:Class="CommunityToolkitSample.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml
传统上UWP上处理进度可以这样实现,首先是XAML,包括一个ProgressBar和一个按钮: ...; } } 点击按钮开始进度,隐藏按钮;进度完成后重新显示按钮。...3.2.2 假装成普通Button UWP的Button的ControlTemplate中只有一个ContentPresenter,边框、背景等都由这个ContentPresenter呈现。...但Silverlight以后性能影响就变小了,我没测试过UWP的情况,应该不会比Silverlight差吧。何况按钮的尺寸基本都不大,就算再怎么乱来对性能影响都有限。...结语 做完后才有点后悔,其实ProgressButton不应该继承Button,既然不是Button好像也不应该命名为-Button。
XAML 颜色。...一些坑 控件在标题栏区域无法交互 想必当你扩展到标题栏后,在标题栏区域增加一些按钮的时候,肯定会遇到下面的情况: ? ▲ 按钮在标题栏区域的一半无法交互 这显然是无法接受的。...▲ 按钮在标题栏区域现在可以交互了 特别说明一下,SetTitleBar 传入的是 UIElement 类型的实例,也就是说这也是 XAML 交互的一部分。...阅读 理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图) 了解如何编写多个视图的 UWP 应用,了解非主要视图的初始化时机。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布
本文告诉大家如何扔掉 cs 文件,在 xaml 写 C# 代码,将 xaml 和 C# 代码写在一个文件 在 WPF 的 XAMl 有一个小伙伴也许看到但是忽略的特性就是 x:Code 特性,这个特性在...UWP 版本被干掉了,因为太好用了 其实小伙伴忽略这个特性也是对的,因为从设计上这不是一个好的方案,将 XAML 和业务逻辑 C# 代码放在一个文件里面 但是可以用来做和界面十分相关的逻辑,此时放在...VerticalAlignment="Center" Click="Button_OnClick">按钮 ...WPF 博客"; } ]]> 此时不需要在 xaml.cs 文件里面添加按钮点击的事件的方法 本文代码放在 github 欢迎小伙伴访问...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
背景透明的异形窗口 如下是一个背景透明异形窗口的示例: 此窗口包含很大的圆角,还包含 DropShadowEffect 制作的阴影效果。对于非透明窗口来说,这是不可能实现的。...如果你有留意到我的其他博客,你会发现我定制窗口样式的时候都在极力避开设置此性能极差的属性: WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome...方案 WindowChrome AllowsTransparency 拖拽标题栏移动窗口 保留 自行实现 最小化最大化关闭按钮 丢失 丢失 拖拽边缘调整窗口大小 丢失 丢失 移动窗口到顶部可最大化 丢失...,但仅需要一两行代码即可补回功能 丢失 表示此功能已消失,如需实现需要编写大量代码 另外,以上表格仅针对鼠标操作窗口。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
---- 关于 Windows Community Toolkit 早期版本的 Xaml Bridge,可以参见: WPF 使用 Edge 浏览器 - 林德熙 安装 NuGet 包 你需要做的第一步,是在你的...添加到你的 WPF 界面中: 拖拽到界面设计器中 拖拽到 XAML 代码行中 直接在 XAML 代码中写 ?...这样,当 WindowsXamlHost 初始化的时候,也会初始化一个 UWP 的控件。 这里为了简单,我初始化一个 UWP 的按钮。...但必须得为 UWP 的按钮进行一些初始化,所以我监听了 ChangedChanged 事件: <XamlHost:WindowsXamlHost Grid.Column="1" InitialTypeName...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布
(UWP 窗口按钮 32 高度,最大化 32 高度;Google Chrome 窗口按钮 30 高度,最大化 27 高度。) ? 所以,截至这里,我们算是模拟得比较像了。 其他的属性需要尝试吗?...标题栏上的三大金刚 我们发现,在以上所有方法尝试完成后,还剩下右上角的三颗按钮的背景色无法定制。如果依然采用非客户区控件覆盖的方法,这三个按钮就会被遮挡,只能自己区模拟了,那是不小的工作量。...然而我们还发现,Google Chrome 是定制了这三个按钮的背景色的,正在研究它的做法。 不过 Win32 原生的方法顶多只支持修改标题栏按钮的背景色,而不支持让标题栏按钮全透明。...也就是说,Win32 原生方法也许能达到 Google Chrome 的效果,但不可能达到 UWP 中的效果。 为了完全模拟 UWP,标题栏上的按钮只能自绘了。...关于自绘标题栏按钮以模拟 UWP 原生按钮,可以阅读我的另一篇文章(代码太长,还是分开了好):WPF 应用完全模拟 UWP 的标题栏按钮。
\lindexi\doubi\LaykearduchuNachairgurharhear\LaykearduchuNachairgurharhear.csproj] 接下来打开 MainWindow.xaml...Class="LaykearduchuNachairgurharhear.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml.../presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http:/...安装包,也可以放在 WPF 应用程序上,请看 WPF 引用 UWP 控件 不打包为 MSIX 分发的方法 如果想给画布加上背景,请看 WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls...的 InkCanvas 时加上背景色和按钮方法 更多触摸请看 WPF 触摸相关 更多笔迹相关请看 WPF 渲染原理 高性能笔迹原理 WPF 高性能笔 WPF 高速书写 StylusPlugIn 原理
无论是WinRT还是UWP应用,都会使用返回键导航。桌面WinRTx应用会在Xaml文件添加返回按钮。...但是在UWP应用中,非常灵活,桌面应用可以在标题栏中添加返回按钮,在移动设备中不仅能使用标题栏中的返回键,也可以使用物理返回键实现导航功能。UWP的方法比较通用,且不需要编写自定义的Xaml文件。...修改后的LayoutAwarePage 类: 1: protected override void OnNavigatedTo(NavigationEventArgs e) 2: {...下面是Windows8 版本的Xaml文件,在Windows10 中已经无法使用。...UWP平台开发工具 ComponentOne Studio for UWP,是一套可以编写所有 UWP 平台应用的控件集,包括表格、报表、图表、仪表盘、组织图、地图、PDF、Excel、Word、日程安排
界面布局 与Android类似,UWP应用采用XAML作为布局文件 <Page x:Class="MailSystem_UWP.View.LoginPage" xmlns="http:/...2006/xaml" xmlns:local="using:MailSystem_UWP.View" xmlns:d="http://schemas.microsoft.com/expression...概述学习XAML语法,因为许多自定义样式,画笔,布局都是无法通过拖动实现的 异步任务与UI线程 当用户点击一个按钮,系统自动生成一个消息,并插入到UI消息队列中,UI线程处理了这个消息,响应了点击事件...,点击返回按钮后执行OnBackClick()里的代码。...定义颜色需要用到GradientStop,我们称GradientStop为梯度点 现在初始化梯度点,并修改背景画笔 gradientStop1.Color = new Windows.UI.Color(
按照微软的官方文档,大部分的文档都会说如果用了 XAML Islands 等技术的时候,需要新建一个打包项目,将 WPF 应用打包为 msix 等才可以进行分发和使用。...但是实际上不打包也可以,此时可以和此前的 Win32 应用一样的分发方式进行分发,可以支持到 Win7 系统,当然了在 Win7 系统上可用不了 UWP 的控件,但是至少应用软件自身可以在 Win7 继续运行的...可以通过判断系统版本决定功能是否开放,如是 Win10 版本,那么开放 UWP 控件部分的使用 如果新建一个空的 .NET Core 3.1 的 WPF 项目,然后只是安装了必要的 NuGet 包之后,...就在 XAML 界面里面添加了 UWP 的控件,如笔迹控件。...Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 做高性能笔迹应用 WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 时加上背景色和按钮方法
XAML 是这样的(这里的 XAML,WPF 和 UWP 完全一样,可以互相使用而不用修改任何代码): 布局部分 <Grid.RowDefinitions...NextRandomPosition(); TranslateTransform.X = nextPosition.X; TranslateTransform.Y = nextPosition.Y; } 快速点击这个按钮看看...现在,我们加上暂停按钮: private void PauseStoryboard_Click(object sender, RoutedEventArgs e) { TranslateStoryboard.Pause...From 和 To 来指定动画的起始值和终止值;但如果真的不指定 From 和 To,需要提前播放一次动画以确保动画能保持住元素状态; 在 WPF 中,如果没有指定 From 和 To,那么动画结束后依然能直接为元素属性复制...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布
(UWP 窗口按钮 32 高度,最大化 32 高度;Google Chrome 窗口按钮 30 高度,最大化 27 高度。) 所以,截至这里,我们算是模拟得比较像了。 其他的属性需要尝试吗?...标题栏上的三大金刚 我们发现,在以上所有方法尝试完成后,还剩下右上角的三颗按钮的背景色无法定制。如果依然采用非客户区控件覆盖的方法,这三个按钮就会被遮挡,只能自己区模拟了,那是不小的工作量。...然而我们还发现,Google Chrome 是定制了这三个按钮的背景色的,正在研究它的做法。 不过 Win32 原生的方法顶多只支持修改标题栏按钮的背景色,而不支持让标题栏按钮全透明。...也就是说,Win32 原生方法也许能达到 Google Chrome 的效果,但不可能达到 UWP 中的效果。 为了完全模拟 UWP,标题栏上的按钮只能自绘了。...关于自绘标题栏按钮以模拟 UWP 原生按钮,可以阅读我的另一篇文章(代码太长,还是分开了好):WPF 应用完全模拟 UWP 的标题栏按钮。
不过目前FDS中材质的应用场景有明确规定,并不是和以前材质化泛滥时一样连所有按钮都材质化。从材质的回归可以看出UWP的承载主体已经从屏幕延伸到MR。 Acrylic是目前FDS主打的材质。...Background acrylic 透视整个应用UI,可以看到应用窗体后的其它应用或桌面(在ThemeResource中名称包含 -AcrylicWindow-)。 ?...navigationService.NavigateToPage(); ConnectedAnimations2ndPage.xaml UWP诞生的目的就是为了打造能在各种设备上运行的通用应用,伸缩性对UWP至关重要。即使只针对桌面设备,能有各种输入方式对可用性都有很大提高。...="Top" Text="{x:Bind appmodel:Package.Current.DisplayName}" /> 我自己的ColorfulBox应用在使用上述方案升级后外观有了不少改善
领取专属 10元无门槛券
手把手带您无忧上云