【发布时间】:2015-06-15 15:15:37
【问题描述】:
我使用路径element(StrokeThickness="1" SnapsToDevicePixels="True")
在网格中。我想调整窗口大小,Grid 元素由 Viewbox 元素包裹。
问题
当我调整窗口大小时,路径会消失一段时间。如果我将 SnapsToDevicePixels 设置为 false,Path 元素可能会模糊,这不是我想要的。
如何避免单像素线消失?
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>
可惜我没有发布运行时效果的声誉。
【问题讨论】:
-
我认为它会在特定的高度值上消失(始终如一)?可能只有奇数或其他模式?
-
你遇到过吗?问题是如果 strokethickness 是 3 像素,那么稍微调整一下窗口的大小,有时可能是 2 像素。
-
只是不要把它放在 Viewbox 中。 Viewbox 会缩放其子元素的渲染输出,而不是缩放其树中可能包含的任何几何图形,那么您期望什么?
-
我希望线条可以缩放并有清晰的边缘。在放大的过程中,线条要保持它的宽度,比如一个像素。然后到两个像素。但不是一个像素,然后可能会消失,然后是一个像素,两个像素,然后又变成一个像素......我认为这可能是 wpf 中的一个错误
-
我还看到 VisualBrush 会像 ViewBox 一样丢失线。stackoverflow.com/q/44495238/6116637
标签: c# wpf snapstodevicepixels