有和没有画布的模糊线条.无法实现像素捕捉的任何方式?

Mic*_*ing 3 .net c# silverlight

以下问题.我只是想用C#画小东西.我想用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>
Run Code Online (Sandbox Code Playgroud)

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

我试过以下事情:

  • UseLayoutRounding="True"
  • 我尝试了这里提供的像素管理器类 - 这对我来说也不起作用.这里是Xavier Poinas(线程)的答案,他有明显相同的问题并且也失败了这个自定义像素笛鲷:"坐标我似乎明白这个类的工作方式是将项目的边界捕捉到圆形像素,但是坐标我使用的已经是整数,并且在路径的情况下,捕捉边界可能并不意味着内容也落在圆形像素上." )

如果找到解决方案,那将是很好的,它允许我捕捉由Canvas持有的线条.

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

BarIcons

可能有更简单的方法吗?我只是不想使用图像资源.谢谢!

任何帮助将大大赞赏.

Rob*_*rdy 5

坐标是像素之间的点.

您看到的模糊线条是渲染引擎试图在两个像素之间平均分布图形的结果,1px线将覆盖这种情况.

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

将0.5加到你的坐垫上,它会显得很锋利.

或翻译为0.5,0.5


归档时间:

查看次数:

525 次

最近记录:

13 年,1 月 前