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

从 WPF 搬迁到 UOS 下的 UNO 的笔记

其中 GTK 可以同时在 Windows 和 Linux 系统上跑,但 GTK 在 Windows 上可能有一些奇奇怪怪的问题,此时换成 Skia.WPF 好了,毕竟真的发布在 Windows 平台的也不会那么想不开用...,在 UOS 默认有思源黑体字体,在 GTK 会自动做字体回滚,只需要应用设置为微软雅黑即可。...否则你将会看到一些字体布局有些奇怪 TextBox 撑开空间 如果有内容是依赖 TextBox 的输入过程时的测量撑开的空间的,那撑开的空间将可能不对,比如以下代码 TextBox HorizontalAlignment...,现在是 UNO 5.0 版本,依然难以修复此问题 TextBox 的最小高度 最小高度依然会比预期的更高一些,只能修改界面设计,绕路 TextBox 的滚动条 比如滚动最底,可以使用如下代码...核心就是通过爬视觉树找到 ScrollViewer 对象,通过 ScrollViewer 控制滚动 几何图形 StreamGeometry 资源 在 WPF 里面,经常有图标使用的是 Path 几何路径

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

    从ContentControl开始入门自定义控件

    ,点击“添加”后VisualStudio会自动创建两个文件:MyHeaderedContentControl.cs和Themes/Generic.xaml。 ?...在DefaultStyle上实现ContentControl的基础部分 接下来将MyHeaderedContentControl的父类修改为ContentControl。...通常在ContentPresenter上使用TemplateBinding的属性不会太多,因为很大一部分Control的属性的值都可继承,即默认使用VisualTree上父节点所设置的属性值,譬如字体属性...结果就如上面截图显示,第二个TextBox没有获得焦点,焦点被包含它的ContentControl获取了,要再按一次 Tab TextBox才能获得焦点。...IsTabStop指示是否将某个控件包含在 Tab 导航中,Tab的导航顺序是用深度优先算法搜索VisualTree上的Control,所以ContentControl优先获得了焦点。

    4.1K40

    合体姿势不对的HeaderedContentControl

    前言 HeaderedContentControl是WPF中就存在的控件,这个控件的功能很简单:提供Header和Content两个属性,在UI上创建两个ContentPresenter并分别绑定到Header...GitHub上也有过添加HeaderedContentControl的意见,其实我是很支持这件事的,毕竟HeaderedContentControl可不只是多了一个Header属性而已。...这样的合体姿势明显不对,事实上在WPF中继承HeaderedContentControl的控件(如Expander和GroupBox)都在ControlTempalte中使用了Grid或DockPanel...仔细观察就会发现TextBox等控件的Header是有一个0,0,0,8的Margin,可是HeaderedContentControl并没有这样设置,结果HeaderedContentControl就会出现高度不匹配的问题...一样,ControlTemplate中使用了Grid作为容器这点也一样,改变的主要有以下几点: Margin、ContentTransitions等属性有按照标准做法好好做了绑定。

    91330

    在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点

    可是这个过程稍微不够流畅,我希望点击 Sign In 按钮后,数据验证错误的控件自动获得焦点,像下面这个 gif 那样: ?...这个需求在使用 CodeBehind 的场景很容易实现,但 MVVM 模式就有点难,因为 ViewModel 应该不能直接调用 View 上的任何元素的函数。...的 IsEnabled 与 ViewModel 上的属性绑定。...自动获得焦点 上面的做法实现了我的需求,而且使用这种方案可以让 ViewModel 对 View 有更多的控制权,可以指定哪个 UI 元素在任何时间获得焦点,但坏处就是要写很多代码,而且属性越多耦合越多...另一种做法是让 Validation.HasError 为 true 的控件自动获得焦点,可以在 View 上添加这个样式: TextBox" BasedOn="{

    1.5K40

    请来围观:WPF开发的微信客户端!!!

    ,只是用WPF开发的而已,外观上不同,但是实际交互上是差不多的。...2、大家可以看到我上面的截图部分包含了一部分的背景,这个是用Snagit(推荐这个截图工具,很好用)截图时,自动截出的,因为窗体本身的大小就是那么大,多余出来的部分是透明的,用来做二维码滑动出现的效果部分...> ControlTemplate> 3、聊天内容部分用的是ScrollingListBox...,继承自ListBox,但是重写了里面的OnItemsChanged属性,保证可以时刻滚动到最后一行 public class ScrollingListBox : ListBox { protected...系统托盘闪烁可以用Timer和Opacity来进行控制,比如来未读消息了,则在进行时间间隔的控制显隐。 后期会把TextBox换成RichTextBox,这样可以发送图片和emoji。

    1.8K30

    ESP8266 WiFi物联网智能插座—上位机软件实现

    1、软件架构 上位机主要作为下位机数据上传服务端以及节点调试的控制端,可以等效认为是专属版本调试工具。针对智能插座协议,对于下位机进行可视化监测和管理。...软件技术架构如下,主要为针对 Windows 的PC 端应用程序,采用WPF以及C# 实现功能开发,其中包含MVVM架构。...38106923/89089246 2、开发环境 主要在Windows10操作系统中,使用Visual Studio 2022 进行开发,项目源码结构如下: G2CyHome.Models : 包含UI部分通用的一些依赖类...,采集来自目标选中节点的传输数据。...--数据调试--> 4.3、节点控制 1)协议下发 涉及到的下发协议主要包含:控制继电器开关、节点配置、模式切换、控制状态回发。

    13500
    领券