在uwp仿制WPF的Window】的更多相关文章

移植WPF软件到uwp时碰到用作对话框的Window有多种处理选择.我个人认为最省事的是用ContentDialog模拟Window. 比如你想把上面这个WPF窗体弄到uwp里面去 1.修改ContentDialog的默认样式 新建一个模板化控件RoundCornerContentDialog 让它继承ContentDialog. 然后去Windows SDK里面翻默认样式(因为vs2015 update 1无法自动提取ContentDialog的默认样式到Xaml). 我的电脑上默认样式在这个…
原文:UWP 和 WPF 对比 本文告诉大家 UWP 和 WPF 的不同. 如果在遇到技术选择或者想和小伙伴吹的时候可以让他以为自己很厉害,那么请继续看. 如果在看这文章还不知道什么是 UWP 和 WPF 那么也没关系,下面会告诉大家. 实际上 Universal Windows Platform (UWP) 和 Windows Presentation Foundation (WPF) 是不相同的,虽然都可以做界面和桌面开发,但是 UWP 是一个新的 UI 框架,而且 UWP 是支持很多平台,…
原文:[WPF自定义控件]?Window(窗体)的UI元素及行为 1. 前言 本来打算写一篇<自定义Window>的文章,但写着写着发觉内容太多,所以还是把使用WindowChrome自定义Window需要用到的部分基础知识独立出来,于是就形成了这篇文章. 无论是桌面编程还是日常使用,Window(窗体)都是最常接触的UI元素之一,既然Window这么重要那么多了解一些也没有坏处. 2.标准Window 这篇文章主要讨论标准的Window,不包括奇形怪状的无边框.非矩形Window,即只讨论W…
 vb.net WPF webbrowser window.close 关闭后不触发 WindowClosing 事件 WNDPROC解决方式 #Region "WPF 当浏览器窗体关闭时触发 Quit事件 " #If OnSourceInitialized Then Protected Overrides Sub OnSourceInitialized(e As EventArgs) 'onload 等句柄创建后引用WSInitialized(Me, e) WSInitializ…
1. 引言 在上一篇中,介绍了如何建立自定义窗体.接下来,我们需要考虑将该自定义窗体基类放到类库中去,只有放到类库中,我们才能在其他地方去方便的引用该基类. 2. 创建类库 接上一篇的项目,先添加一个类库项目stonemqy.CustomWindow.Helpers.理所当然的,我们接下来需要把VisualStates.TransitioningContentControl.CustomWindow.Themes/Generic.xaml等文件放入类库中.此时,要注意添加如下引用: Presen…
1. 引言 WPF是制作界面的一大利器.最近在做一个项目,用的就是WPF.既然使用了WPF了,那么理所当然的,需要自定义窗体样式.所使用的代码是在网上查到的,遗憾的是,整理完毕后,再找那篇帖子却怎么也找不到了,仅仅在下载记录里面找到了作者的git地址,DinoChan.原帖作者看到后可以联系我,以便我加上原文链接. 首先上原始源码. 2. 创建项目 创建空白项目stonemqy.CustomWindow,添加WPF项目stonemqy.CustomWindow.Main.在stonemqy.Cu…
在学习UWP的过程中确实有这个迷惑,在此分享一下. UWP (Universal Windows platform), Metro and WinRT are all result of Microsoft's latest changes, microsoft made so many changes to it's app frameworks in a very short period and i believe that's the reason behind that confusi…
WPF设置Window的数据上下文(DataContext)为自身的XAML: DataContext="{Binding RelativeSource={RelativeSource Self}}"…
  效果图:     源码下载 SourceCode   参考 Disabling or hiding the minimize, maximize or close button of a WPF window…
XAML代码部分:1.引用System.Windows.Interactivity 2.为指定的控件添加一个拖动的行为 3.很简单的了解行为的作用和用法 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:i="http://schem…
本文需要告诉大家,如何使用 Behaviors 做出 WPF 的 Trigger ,需要知道 UWP 不支持 WPF 的 Trigger . 安装 Behaviors 请使用 Nuget 安装,可以输入下面的代码进行安装 Install-Package Microsoft.Xaml.Behaviors.Uwp.Managed 或者搜索 Microsoft.Xaml.Behaviors 下载 他的官网在 Behaviors 以前的代码 在 WPF 开发,可以写出下面代码 <Button> <…
1. 前言 之前介绍过依赖属性和附加属性的代码段,这两个代码段我用了很多年,一直都帮了我很多.不过这两个代码段我也多年没修改过,Resharper老是提示我生成的代码可以修改,它这么有诚意,这次就只好从了它,顺便简单介绍下怎么自定义代码段. 2. VisualStudio自带代码段的问题 以依赖属性为例,一个完整的依赖属性应该包含以下部分: 注册依赖属性并生成依赖属性标识符.依赖属性标识符为一个public static readonly DependencyProperty字段.依赖属性标识符…
资源文件代码: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <!-- 最大化按钮形状 --> <PathGeometry x:Key="pathMaximize"> <…
需求:弹窗的右上角不显示最大化.最小化按钮. 在< Window >节点添加属性以下属性即可: ResizeMode="NoResize" 或者直接在Properties面板中 Common下找到ResizeMode并改选为NoResize.…
最近开发一个 WPF 项目, 在此项目中有个类库工程, 在开发的过程中发现在类库工程中竟然添加不了 WPF 窗口对象和一些其他的 WPF 对象,在新建窗口中选 WPF 类型,只有一个 “用户控件(WPF)” 的模版. 要在类库中添加 WPF 窗口对象, 可以先在其他项目中建好然后复制过来, 如果多的话, 这种方式会比较蛋疼 另一种方式就是修改类库项目的类型: 修改项目的项目类型,需要使用文本编辑器打开项目的 csproj 文件, 在 csproj 文件中的 PropertyGroup/Proje…
方法一: Window window = new Window();window.ShowDialog; 方法二: 设置一个判断窗口打开状态的全局控制变量         private bool isOpened = false;         private void Button_Click(object sender, RoutedEventArgs e)         {             if (!isOpened)             {              …
<Window ... WindowStyle="None" AllowsTransparency="True" RenderTransformOrigin="0.5, 0.5"> <Window.Resources> <Storyboard x:Key="WinBootAnimation"> <DoubleAnimation Storyboard.TargetProperty=&qu…
1. ShowInTaskbar:设置窗口是否在任务栏上有一席之位,默认为true, 当在父窗口上新开一个子窗口时,任务栏上就会出现两个窗口,所以当要实现 不管开启多少个窗口,在任务栏上都只显示一个窗口时,就需要将子窗口的ShowInTaskbar设为false: **注意: 尽管这样会解决任务栏上出现多个窗口的情况,但有时却会出现严重的问题,因为没有设置子窗体的Owner属性, 导致有时在切换窗体时,父窗体将子窗体覆盖,并且不能点击,造成假死的极端不友好的情况,所以当使用ShowInTaskb…
private IntPtr WidProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == 0x112) { if (wParam.ToInt32() == 0xF093)//单击打开菜单 handled = true; if (wParam.ToInt32() == 0xF100) //键盘打开菜单 handled = true; } if (msg == 0xa4) { i…
希望写一个小型工具,给自己和需要的人.考虑到代码尽可能的复用,我准备采用 .Net Standard 来编写大多数核心代码,并基于 .Net Core 编写跨平台控制台入口,用 WPF 编写桌面端 UI 入口,用 UWP 作为可上架商店的 UI 入口,然后用 Shared Project 共享 WPF 和 UI 的多数 UI 入口代码. 阅读本文将了解到如何在尽可能复用代码的情况下组织这样的 C# 解决方案. 工具型项目,选择了控制台 用 WPF 开发桌面 UI,因为其有强大的 .NET Fra…
原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我们希望借此机会回顾一下全年的新变化.如果您错过了我们以前的版本,或者只是没有机会赶上,那么此博客文章将是您可以看到我们在整个2019年所做的每项重大改进的地方. XAML实时调试工具: XAML C# Edit & Continue 现…
原文 | Dmitry 翻译 | 郑子铭 自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能.在本周的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我们希望借此机会回顾一下全年的新变化.如果您错过了我们以前的版本,或者只是没有机会赶上,那么此博客文章将是您可以看到我们在整个2019年所做的每项重大改进的地方. XAML实时调试工具: XAML C# Edit & Continue 现…
原文:WPF 不要给 Window 类设置变换矩阵(应用篇) WPF 的 Window 类是不允许设置变换矩阵的.不过,总会有小伙伴为了能够设置一下试图绕过一些验证机制. 不要试图绕过,因为你会遇到更多问题. 本文内容 试图设置变换矩阵 绕过验证 小心异常 试图设置变换矩阵 当你试图给 Window 类设置变换矩阵的时候,会出现异常: System.InvalidOperationException:"转换对于 Window 无效." 无论是缩放还是旋转,都一样会出现异常. 我们在 W…
前言 之前在 剁手党也有春天 -- 淘宝 UWP ”比较“功能诞生记 这篇随笔中介绍了一下 UWP 淘宝的“比较”新功能呱呱坠地的过程.在鲜活的文字背后,其实都是程序员不眠不休的血泪史(有血有泪有史)……所以我们这次就要在看似好玩的 UWP 多窗口实现背后,挖掘一些我们也是首次接触的干活“新鲜热辣”地放松给大家.希望能使大家在想要将自己的 APP 开新窗口的时候,能从本文中得到一些启发,而不是总是发现 C# 关于 UWP 开新窗口可供参考的文章只有 Is it possible to open…
如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越来越多烦恼,请试试本文提供的框架. 本文介绍我做的框架,这是一个轻量的框架,可以同时使用其它的框架,用于多个页面之间,多个 ViewModel 之间的通信. 一般的通信是一个页面内存在多个子页面,而且经常需要对多个页面进行通信,为了降低多个页面的耦合度,于是我就做了自己的框架.这个框架比较简单,很多…
本文告诉大家DataContext的多种绑法. 适合于WPF的绑定和UWP的绑定. 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用.当然,可以在新手面前秀下,一个页面一个绑定方法. 开始是从最简单的来说起. 资源绑定 最简单的绑定是写在资源. <Page.Resources> <viewModel:ViewModel x:Key="ViewModel"></viewModel:ViewModel> </Page…
UWP跟 WPF编程模型一致,不过UWP做了精简,而且不同的系统的API还略有不同.不同的地方有以下几点: 1.动画.动画除了故事版,还有其它的实现方式. 2.异步方法.UWP中的方法调用,大部分都是异步的.所以,搞不好就出现不同步的问题. 3.时钟通过线程池来实现.时钟的调用方式,是用完后,重新取一个. 4.主容器用的Page,而不是Window. 代码结构的调整. 源码…
1. 前言 我去年写过一个在UWP自定义控件的系列博客,大部分的经验都可以用在WPF中(只有一点小区别).这篇文章的目的是快速入门自定义控件的开发,所以尽量精简了篇幅,更深入的概念在以后介绍各控件的文章中实际运用到才介绍. ContentControl是WPF中最基础的一种控件,Window.Button.ScrollViewer.Label.ListBoxItem等都继承自ContentControl.而且ContentControl的结构十分简单,很适合用来入门自定义控件. 这篇文章通过自定…
原文:通过 AppSwitch 禁用 WPF 内置的触摸让 WPF 程序可以处理 Windows 触摸消息 WPF 框架自己实现了一套触摸机制,但同一窗口只能支持一套触摸机制,于是这会禁用系统的触摸消息(WM_TOUCH).这能够很大程度提升 WPF 程序的触摸响应速度,但是很多时候又会产生一些 Bug. 如果你有需要,可以考虑禁用 WPF 的内置的实时触摸(RealTimeStylus).本文介绍禁用方法,使用 AppSwitch,而不是网上广为流传的反射方法. 本文内容 如何设置 AppSw…
本文告诉大家如何使用依赖属性,包括在 UWP 和 WPF 如何使用. 本文不会告诉大家依赖属性的好处,只是简单告诉大家如何使用 在 UWP 和 wpf ,如果需要创建自己的依赖属性,可以使用代码片,在 VisualStudio 可以使用 propdp输入两个 tab 就可以输入依赖属性. 本文最后提供修改的代码片,可以解决变量名修改出现的界面绑定不刷新. UWP 什么时候可以获取继承的依赖属性 依赖属性一般是不在构造函数写获取继承的属性的值,因为一般这时拿到的值都是没有继承,请看下面的代码 创建…