gpt4 book ai didi

c# - 有和没有 Canvas 的模糊线条。无法实现任何像素捕捉方式?

转载 作者:行者123 更新时间:2023-11-30 15:02:20 25 4
gpt4 key购买 nike

以下问题。我只是想用 C# 画一些小东西。我想用 Canvas 来做这个。但即使没有 Canvas,线条也显示得很模糊。在一个简单的演示项目中已经失败的最简单的事情是以下代码:

<UserControl x:Class="Drawing.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White">
<Line Y1="1" Y2="300" StrokeThickness="1"
Stroke="Black" Margin="10 0 0 0"/>
</Grid>
</UserControl>

这条线刚刚显示模糊。我已经尝试了很多,但我无法弄清楚如何实现清晰的一像素宽线条。

我尝试了以下操作:

  • UseLayoutRounding="True"
  • 我尝试了像素鲷鱼类 - 提供 here - 这对我也不起作用。这里是Xavier Poinas的答案( thread ),他显然有同样的问题,而且这个自定义像素捕捉器也失败了:“坐标我似乎理解这个类通过将项目的边界捕捉到圆形像素来工作,但是坐标我use 已经是整数,在路径的情况下,捕捉边界可能也不意味着内容落在圆形像素上。”)

如果找到一个解决方案,那就太好了,它允许我捕捉由 Canvas 保留的线条。

这样做的原因是:由于技术原因,我们需要一个无边框的 OOB 应用程序,它实现了自定义边框(调整大小)和自定义应用程序栏,其中包含最小化、最大化和关闭项目。我只是尝试通过线条等手工绘制这些图标:

BarIcons

有没有更简单的方法?我只是不想使用图像资源。谢谢!

如有任何帮助,我们将非常感激。

最佳答案

坐标是像素之间的点。

您看到的模糊线是渲染引擎试图在两个像素之间平均分布绘图的结果,在这种情况下,1 像素的线会覆盖这些像素。

这允许引擎从 0,0 工作到 maxX,maxY 并且仍然使用部分像素渲染。

将 0.5 添加到您的坐标,它会像大头钉一样清晰。

或者翻译成0.5,0.5

关于c# - 有和没有 Canvas 的模糊线条。无法实现任何像素捕捉方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com