C# 如何避免wpf中单个像素线消失?

C# 如何避免wpf中单个像素线消失?,c#,wpf,snapstodevicepixels,C#,Wpf,Snapstodevicepixels,我使用路径元素(StrokeThickness=“1”SnapsToDevicePixels=“True”) 在网格中。我想调整窗口的大小,网格元素由Viewbox元素包裹 问题 当我调整窗口大小时,路径将在一段时间内消失。如果我将SnapsToDevicePixels设置为false,路径元素可能会模糊,这不是我想要的 如何避免单像素线分散 XAML代码: <Window x:Class="WpfApplication2.MainWindow" xmlns="http://sch

我使用路径
元素(StrokeThickness=“1”SnapsToDevicePixels=“True”)
在网格中。我想调整窗口的大小,网格元素由Viewbox元素包裹

问题

当我调整窗口大小时,路径将在一段时间内消失。如果我将SnapsToDevicePixels设置为false,路径元素可能会模糊,这不是我想要的

如何避免单像素线分散

XAML代码:

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="207" Width="475">
   <Viewbox Stretch="Fill">
       <Grid Height="320" Width="517">
          <Path Data="M0,0 H1 z" StrokeThickness="1" Stroke="Black" Margin="72,73,79,218" Stretch="Fill" SnapsToDevicePixels="True" MinHeight="1"/>
       </Grid>
   </Viewbox>


遗憾的是,我没有名声去发布运行时效果。

我曾经用放置在Viewbox中的分隔符试验过同样的问题。其中一些因某些决议而消失。要修复此问题,我将其替换为1像素高的边框:

< Border Background="DarkGray" Grid.Row="0" Grid.ColumnSpan="7" Height="1" />
这样可以避免一个像素的单行在viewBox中消失。
希望它也能对您有用。

我假设它在特定高度值上消失(一致)?可能只有奇怪的或其他的模式?你以前见过吗?问题是,如果strokethickness为3像素,则稍微调整窗口大小,有时可能为2像素。只是不要将其放在Viewbox中。Viewbox缩放其子元素的渲染输出,而不是其树中可能包含的任何几何体,因此您期望得到什么?我希望线条可以缩放并具有清晰的边缘。在放大过程中,线条应保持其宽度,如一个像素。然后是两个像素。但不是一个像素,然后可能会被禁用,然后是一个像素,两个像素,然后再转为一个像素…我认为这可能是wpfI中的一个错误,也可以看到VisualBrush会像ViewBox一样丢失线条。