我很困惑。
我创建了一个 PNG 图像,作为我的应用程序显示中的分隔符,图像高 3 像素,如下所示:
但是,当我在 C# WPF 窗口上显示并运行它时,分隔线显示为大约 4 像素,颜色关闭。
代码:
<StackPanel Height="3">
<StackPanel.Background>
<ImageBrush ImageSource="Assets/divider.png" Stretch="None"
AlignmentX="Left" AlignmentY="Top" Viewport="0,0,20,3"
ViewportUnits="Absolute" TileMode="FlipX" />
</StackPanel.Background>
</StackPanel>
输出和缩放:
我认为图像被“拉伸”(尽管如此Stretch="None"
)或者有一些优化图像的机制,所以我取消了图像并用 3 个具有相同颜色和 1 个像素高度的矩形来编写它这个:
<StackPanel Height="3" Orientation="Vertical">
<Rectangle Fill="#484848" Height="1" />
<Rectangle Fill="#222" Height="1" />
<Rectangle Fill="#484848" Height="1" />
</StackPanel>
然而结果是相似的:4个像素和颜色跑掉(不是指定的确切颜色):
除了像素关闭之外,颜色也关闭了。我的颜色应该是#484848
, #222222
, #484848
. 当显示在 WPF 窗口上时,阴影会稍微变暗(灰色阴影太多!)
随着窗口大小的调整,我也需要分隔符来填充窗口。我是一个完美主义者,我希望 3 像素高度分隔符是像素完美的。有什么办法可以解决这个问题吗?