C# Form运行时,窗体界面模糊,比设计UI时要模糊

问题

在Visual Studio设计窗体时,显示正常,但是一旦运行后窗体上的对象和字体会变得很模糊,缩放也出现了问题

解决方法:

修改项目的配置文件,使项目运行时自动检测屏幕分辨率,在高分辨率屏幕禁用系统缩放,应用程序清单文件里有对禁用高分屏自动缩放的支持,只是被注释掉了,我们去取消注释即可。

  • 1、右击当前项目,点击添加-类

在这里插入图片描述

  • 2、找到应用程序清单文件项,点击添加

在这里插入图片描述

  • 3、打开添加的这个文件,找到下图中这个位置,取消注释即可

在这里插入图片描述

要实现窗体化动态UI,可以采用以下步骤: 1. 创建一个Windows窗体应用程序,打开Visual Studio并选择“新建项目”,选择“Windows窗体应用程序”。 2. 在窗体上添加控件,例如文本框、按钮和标签,并设置其属性。 3. 为窗体和控件添加事件处理程序,例如单击按钮时执行的代码。 4. 创建动态UI的动画效果。可以使用.NET框架中的System.Drawing和System.Windows.Forms命名空间提供的类来实现。 5. 在窗体加载时启动动画效果,并在需要时停止动画效果。 6. 调整UI控件的布局和样式,以使其符合预期的设计要求。 7. 最后,运行应用程序并测试动态UI的效果。 下面是一个简单的例子,演示了如何实现一个动态图标的动画效果: ```csharp using System.Drawing; using System.Windows.Forms; namespace DynamicUIExample { public partial class MainForm : Form { private Timer timer; private int angle = 0; public MainForm() { InitializeComponent(); timer = new Timer(); timer.Interval = 100; timer.Tick += Timer_Tick; } private void Timer_Tick(object sender, System.EventArgs e) { angle += 10; pictureBox1.Image = RotateImage(Properties.Resources.icon, angle); } private Image RotateImage(Image image, float angle) { Bitmap rotatedImage = new Bitmap(image.Width, image.Height); rotatedImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); Graphics graphics = Graphics.FromImage(rotatedImage); graphics.TranslateTransform(image.Width / 2, image.Height / 2); graphics.RotateTransform(angle); graphics.TranslateTransform(-image.Width / 2, -image.Height / 2); graphics.DrawImage(image, new Point(0, 0)); return rotatedImage; } private void MainForm_Load(object sender, System.EventArgs e) { timer.Start(); } private void btnStop_Click(object sender, System.EventArgs e) { timer.Stop(); } private void btnStart_Click(object sender, System.EventArgs e) { timer.Start(); } } } ``` 在上面的代码中,我们创建了一个Windows窗体应用程序,添加了一个PictureBox控件和两个按钮。在窗体加载时,我们启动了一个计时器,定期更新图标的旋转角度,并使用RotateImage方法来旋转实际的图标。当单击“停止”按钮时,我们停止计时器。当单击“开始”按钮时,我们重新启动计时器。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值