首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件

在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项...UWP 的控件(Windows Community Toolkit) 一文,以便将你的 WPF 项目改造成可以访问 UWP 类型的项目。...image.png ▲ 生成的文件已复制到 WPF 目录下 在 WPF 项目中间接引用 UWP 控件库 现在,在 WPF 项目中开启所有文件夹的显示,然后将 UWP 项目中生成的文件添加到 WPF...项目中: image.png ▲ 在 WPF 的项目中添加 UWP 的控件库 为了能够在每次编译 WPF 项目的时候确保 UWP 项目先编译,需要为 WPF 项目设置项目依赖。...在 WPF 项目中使用 UWP 控件库中的控件 这时,在 WindowsXamlHost 中就可以添加 UWP 控件库中的 MainPage 了。

5.9K20

WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)

以前可以在 WPF 中使用有限的 UWP 控件,而现在有了 WindowsXamlHost,则可以使用更多 UWP 原生控件了。...▲ 添加 Windows.Foundation.FoundationContract.winmd 开始在 WPF 中使用 UWP 的控件 你可以像使用普通 WPF 控件一样将 WindowsXamlHost...因为我们不是原生的 UWP,而是 Host 在 WPF 中的 UWP 控件,所以会没有 Application。这在 UWP 控件初始化内部已经 catch 了,所以你可以忽略。...关于 DPI 适配 为了让 UWP 控件能够在 WPF 窗口中获得正确的 Per-Monitor 的 DPI 适配效果,你需要设置为 PerMonitorV2 的 DPI 感知级别。...在 PerMonitorV2 的 DPI 感知级别下,UWP 控件能够正常获得 DPI 缩放。 在 100% DPI 的屏幕下: ? 在 150% DPI 的屏幕下: ?

4.7K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    win10 uwp 自定义控件入门

    本文告诉大家如何在 UWP 使用 CustomControl 自定义控件,在 UWP 的自定义控件的中文翻译是模板化控件,通过自定义控件可以完全控制整个控件的布局和渲染。...默认创建的自定义控件是没有带 xaml 的,如果想要让 CustomControl 可以使用 xaml 就需要引入主题的方法 下面就来告诉大家如何使用 xaml 来做界面 在 CustomControl...使用 xaml 写界面 在 UWP 主要的元素就是控件,可以说,整个 UWP 的界面都依靠控件画出来的。...使用 xaml 可以快速画出好看的界面,而默认创建的 自定义控件和用户控件不一样,用户控件会带一个 xaml 直接修改就可以在设计器看到界面。...在 UWP 通过 xaml 界面就可以知道控件的树结构,如果熟悉树这个结构就知道,可以使用递归的方式处理。

    90220

    【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性

    /页面/控件/等时发生的默认 XAML 设计器缩放行为。...通过这些改进,.NET Core 3 项目可以引用包含自定义 UWP XAML 控件的 UWP 项目。...资源和模板 合并资源字典: 现在,可以使用解决方案资源管理器提供的新功能,轻松地将 UWP / WPF 项目中的现有资源词典与任何有效的 XAML 文件合并。...只需打开要在其中添加 merge 语句的 XAML 文件,然后找到要合并的文件,然后在解决方案资源管理器中右键单击该文件即可。...合并资源字典 “编辑模板”现在可与第三方控件中的控件一起使用: 即使“编辑模板”现在不是源代码解决方案的一部分,也可以创建控件模板的副本。

    7.4K30

    win10 uwp 如何判断一个控件在滚动条的里面是用户可见

    在 UWP 中如何知道一个元素是在滚动条的显示大小内用户可以看到这个控件?如果需要在控件在滚动条里面用户可以看到的时候触发某个事件,在用户看不到的时候触发另一个事件可以怎么做?...昨天星期八再娶你 大佬问我如何判断在滚动条内可以看到某个元素,他需要在滚动条里面放一个视频播放器,在用户看不到这个播放器的时候自动停下这个播放器 在 UWP 的判断会比在 WPF 中复杂一些,我写过WPF...如何判断一个控件在滚动条的里面是用户可见但是在 UWP 中的小伙伴,也就是做 UWP 的大佬对 API 的设计会更加诡异 在 UWP 没有 ScrollChanged 事件只有ScrollViewer.ViewChanged...,所以通过这个事件判断控件是否在滚动条可见是不可靠的 昨天星期八再娶你 大佬告诉我一个可以使用的方法是通过LayoutUpdated 事件拿到触发,在布局属性修改的时候、在窗口修改的时候在运行时的布局的时候都会触发这个事件...在LayoutUpdated可以在控件第一次加载的时候触发,可以在用户滚动的时候触发 在 LayoutUpdated 通过判断控件的左上角坐标和控件的大小可以判断用户是否可以看到这个控件 在 UWP

    93620

    了解模板化控件(1):基础知识

    1.概述 UWP允许开发者通过两种方式创建自定义的控件:UserControl和TemplatedControl(模板化控件)。...这个主题主要讲述如何创建和理解模板化控件,目标是能理解模板化控件常见的知识点,并且可以创建扩展性良好的模板化控件。...1.2 模板化控件 可以使用ControlTemplate的控件即为模板化控件(TemplatedControl),在UWP中,所有派生自Control的控件(除了UserControl)都是模板化控件...可以不存在DefaultStyle,所以某些场合会把模板化控件称为“无外观控件”。 2. 创建第一个模板化控件 下面介绍如何使用VisualStudio在一个新项目中创建一个模板化控件。 ?...两个都不可以移除。Style的内容是一组Setter的集合,除了Template外,还可以添加其它的Setter指定控件的默认外观。

    70230

    了解模板化控件(10):原则与技巧

    原则 推荐以符合以下原则的方式编写模板化控件: 选择合适的父类:选择合适的父类可以节省大量的工作,从UWP自带的控件中选择父类是最安全的做法,通常的选择是Control、ContentControl、ItemsControl...而且先写完所有代码,再用Blend实现UI,会比在代码和UI间交错地工作更高效。 使用依赖属性:控件的使用者会认为所有控件的属性都是可以绑定的,除非有特殊理由不要破坏这个约定俗成的规则。...3.2 合并资源字典 如果一个项目的模板化控件太多,Generic.xaml会异常的复杂,可以将各个控件的资源文件分开存放,再在Generic.xaml中合并它们。...结语 这个系列的主旨是讲解常见的模板化控件技术,希望了解这些技术后能更轻松地构造自己的控件,对理解开源控件库的代码也有一定的帮助。...职业生涯中看过很多程序员都不会写模板化控件(毕竟大部分场景使用UserControl或修改ControlTemplate就能解决),希望这个系列可以帮到想要学习模板化控件的开发者。

    89330

    了解模板化控件(4):TemplatePart

    以AutoSuggestBox为例,它的ControlTemplate结构如下,可以看到AutoSuggestBox由四个TemplatePart组成,每个TemplatePart都可以在控件代码中以编程方式访问...使用TemplatePart 上一篇文章构造了一个很基础的控件HeaderedContentControl,这次通过扩展这个类做些试验性质的功能来介绍模板化控件的进阶知识。...新建一个名为ContentView的控件,继承自HeaderedContentControl,它要实现的功能有两个: 控件的Header默认Opacity=0.7,当鼠标移动到控件上时,设置Header...)获取模板中指定名字的部件。...TemplatePartAttribute在UWP中的作用好像被弱化了,不止在UWP原生控件中见不到TemplatePartAttribute,甚至在Blend中“部件”窗口也消失了。

    97820

    UWP 轻量级样式定义(Lightweight Styling)

    更新于 2018-12-14 01:54 在 UWP 中,可以通过给控件直接设置属性或在 Style 中设置属性来定制控件的样式;不过这样的样式定义十分有限,比如按钮按下时的样式就没法儿设置...当然可以通过修改 Template 来设置控件的样式,然而 UWP 中控件的样式代码实在是太多太复杂了,还不容易从 Blend 中复制了大量代码出来改,下个版本样式又不一样,于是我们就丢了不少功能。...如何找到控件支持的主题资源 前面我们知道了如何定制轻量级样式,但实际做 UI 的时候,我怎么知道有哪些样式主题资源的值可以使用呢?...不过实际上由于 Windows Community Toolkit 以及各种第三方控件库的存在,所以没有什么文档是可以把这些 Key 写全的;所以更重要的方法是我们能自己找到有哪些 Key 可以使用。...image.png ▲ 灰色的 “编辑副本” 第三步:寻找你感兴趣的主题资源的 Key,记下来准备定义 在编辑副本后,你可以在副本的代码中找到按钮的原生样式定义。

    69620

    以Button为例谈谈如何模仿Aero2主题

    为什么选择Aero2 除了以外观为卖点的控件库,WPF的控件库都默认使用“素颜”的外观,然后再提供一些主题包。...顺便拿Button与WPF的其它控件、及UWP的相同控件做横向对比,使用相同的XAML产生的UI如上图所示(上为UWP,下为WPF)。...3.3 字体 只有Menu、StatusBar、Toolbar等有限几个控件会使用SystemFonts的值,其它都可以使用继承值。这样可以方便地通过在根元素设置字体来统一字体的使用。...不过在实现其它自定义控件的时候我也比较倾向提供VisualState,因为这样可以明确指出控件外观有几种状态,避免了混轮,而且提供了VisualState可以更方便扩展。...这点WPF原生控件也是一样的,它们很多都没有声明TemplateVisualState,而且ControlTemplate也没有使用VisualState,但使用Blend编辑控件模板还是可以在“状态”

    1.2K40

    做个调皮的BusyIndicator

    ,有一些细节是实现模板化控件需要注意的: BusyContent BusyContent没有在依赖属性定义中的PropertyMetadata给出默认值,而是在Setter中给出,这是模板化控件中依赖属性的最佳做法...为了使用户清楚这两个Style属性对应的TargetType,可以在BusyIndicator的类型声明上使用StyleTypedPropertyAttribute: [StyleTypedProperty...像这种从父类继承而来的属性通常不会在构造函数中设置默认值,而是在DefaultStyle的Setter中设置默认值。 2.4 运行效果 就这样一个BusyIndicator就移植成功了。...莓良心的 ? 5. 结语 BusyIndicator十分实用,毕竟已经经过多年的考验而代码基本没有更改,应该可以使用在UWP的实际项目中。...幸运的是模板化控件最大的特色就是对修改UI是开放的,将来可以想办法修改。 ExtendBusyIndicator就算了,闹着玩的。 6.

    90750

    New UWP Community Toolkit - RadialProgressBar

    概述 UWP Community Toolkit  中有一个圆形的进度条控件 - RadialProgressBar,本篇我们结合代码详细讲解  RadialProgressBar 的实现。...; Nuget: Microsoft.Toolkit.Uwp.UI.Controls; 开发过程 代码分析 我们来看一下 RadialProgressBar 控件的结构: RadialProgressBar.cs...、outlineArc 和 barArc 属性;而依赖属性有: Thickness - 表示圆形进度条的圆环大小,默认为 0,xaml 中定义为 4 Outline - 表示圆形底的画刷,默认为 transparent...进度条进度值变化的处理方法,会触发 RenderSegment() 方法; OnApplyTemplate() - 应用模板或哦模板改变时,更新控件的视觉显示 ,会触发 RenderAll() 方法;...总结 到这里我们就把 UWP Community Toolkit 中的 RadialProgressBar 控件的源代码实现过程和简单的调用示例讲解完成了,希望能对大家更好的理解和使用这个控件有所帮助;

    982100

    UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)

    UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 发布于 2018-04-15 09...被引入,可以实现炫酷的鼠标滑过高亮效果和点击光照。...本文将告诉大家如何完整地实现这样的效果。 Reveal 的效果(自带) 在微软官方推荐的 XAML Controls Gallery 应用中,我们可以找到 Reveal 的实现章节。...(自己实现) 采用自带效果的控件看起来实现很容易,不过 UWP 控件的自带样式略坑,自己实现控件样式和模板是不可避免的事儿。...这是定制的 ListViewItem 的模板的一部分,写了 RevealBorderBrush 和 RevealBackgroundBrush。

    55020

    win10 uwp 如何使用DataTemplate 转换绑定Event到Command绑定 ObservableCollectionDataTemplate 绑定 ViewM

    这是数据模板,一般用在数组的绑定,显示数组中的元素。...使用很简单,我们可以定义在资源,也可以定义在ItemTemplate。 数据模板有绑定的问题。...我们使用x:bind需要我们对我们数据的类型,这个在前没有,我开始不知,弄了好久,最后才知道,还有一个,UWP默认是OneTime,也就是绑定只有一次。...代码在 https://github.com/lindexi/UWP/tree/master/uwp/control/RountGradualFigure 有用到转换,是把数字转颜色 我们要使用写的转换器...,假如我们控件绑定是x:bind,那么在Converter需要Converter={StaticResource ConvertBooleanNull} 假如我们控件绑定的是 ViewModel 的 JiuYouImageShack

    2.7K20

    UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush)

    UWP 流畅设计中的光照效果(容易的 RevealBorderBrush 和不那么容易的 RevealBackgroundBrush) 2018-04-15 01:37...在 Windows 10.0.16299 中,RevealBrush 被引入,可以实现炫酷的鼠标滑过高亮效果和点击光照。...本文将告诉大家如何完整地实现这样的效果。 ---- Reveal 的效果(自带) 在微软官方推荐的 XAML Controls Gallery 应用中,我们可以找到 Reveal 的实现章节。...(自己实现) 采用自带效果的控件看起来实现很容易,不过 UWP 控件的自带样式略坑,自己实现控件样式和模板是不可避免的事儿。...这是定制的 ListViewItem 的模板的一部分,写了 RevealBorderBrush 和 RevealBackgroundBrush。

    83420

    ComponentOne.NET仪表板布局控件 — 实现可视化数据大屏展示

    这些容器可以托管多种 .NET控件类型,如网格控件,图表控件、报表控件和地图控件。此外,用户还可以在父容器内随意拖放控件、调整控件大小。...WPF 和 UWP 界面控件 WPF和UWP仍然是桌面业务应用程序的流行平台。...新项目模板 ComponentOne 一直在不断添加新的项目模板,因为它可以用户快速入门,提高开发效率。...这些容器可以托管多种 .NET控件类型,如网格控件,图表控件、报表控件和地图控件。此外,用户还可以在父容器内随意拖放控件、调整控件大小。...Razor Pages的脚手架,以及项目模板 ComponentOne 一直在添加模板,以支持快速创建MVC项目并预先配置了C1 MVC控件。

    5.3K20

    About Windows 10 SDK Preview Build 17110

    另外下列的工具箱都提供了控件和模板供 UWP 设计使用: Adobe XD toolkit (v1803, March 2018) Adobe Illustrator toolkit (v1803, March...来看看内置手写的官方演示: ? 用户可以在文本控件中任何位置进行书写,在候选窗口中识别出手写的结果并给用户推荐使用。用户可以选择一个结果,或在接受结果后继续书写。...UWP Console App 可以访问应用所在目录和所有子目录,因为它的模板中在 manifest 中添加了 AppExecutionAlias 的扩展,这种扩展让用户可以在控制台中输入缩写来启动应用...同时 UWP Console App 也支持多实例运行,因为它的模板中在 manifest 中添加了 SupportsMultipleInstances 能力。...两个模板会被安装: Multi-Instance UWP app -- 创建一个多实例的 App Multi-Instance Redirection UWP app -- 提供一个附加的逻辑,让用户可以选择启动新实例

    1.6K40

    将 UWP 中 CommandBar 的展开方向改为向下展开

    2018-10-16 08:57 在 UWP 中使用 CommandBar 来迅速添加一组功能按钮是非常迅速的,是 UWP 中推荐的交互方案之一。...而上图就是其中的一个例子。 我们当然希望在顶部的 CommandBar 其展开方向是向下,所以我们需要找到一些方法。...▲ 在使用 Minimal 的关闭模式时,可以向下展开 如果你设置的 SecondaryCommand 比较长,那么展开的时候也会占用较多的控件,于是也可以强制 CommandBar 向下展开。...▲ 编辑控件模板的副本 现在,使用 Visual Studio 设计器来帮助我们获得 CommandBar 的完整默认样式定义,就像上图那样。于是,我们可以阅读其代码并修改展开方向了。...如果你对其他控件有小型样式的修改需求,可以阅读我的另一篇文章:UWP 轻量级样式定义(Lightweight Styling)。

    1.7K10
    领券