我正在编写简单的益智游戏,其中拼图是由正方形组成的棋盘。每X和每Y的平方数是固定的。我希望拼图可以统一缩放到任意大小以适应用户的屏幕,填充游戏控件留下的所有空间。
以下是显示问题的示例XAML。 Viewbox用于执行自动缩放。
<Viewbox>
<Canvas Width="320" Height="240" Background="Black">
<Border
Width="20" Height="20"
Background="Red"
>
<Border.RenderTransform>
<TranslateTransform X="0" Y="0" />
</Border.RenderTransform>
</Border>
<Border
Width="20" Height="20"
Background="Red"
>
<Border.RenderTransform>
<TranslateTransform X="20" Y="0" />
</Border.RenderTransform>
</Border>
<Border
Width="20" Height="20"
Background="Red"
>
<Border.RenderTransform>
<TranslateTransform X="40" Y="0" />
</Border.RenderTransform>
</Border>
</Canvas>
</Viewbox>
</UserControl>
问题出现在实际应用程序中,但也可以在Visual Studio XAML设计器中观察到。如果打开此文件并将缩放比例设置为111%,则矩形之间将出现1px宽度的垂直黑色间隙。我认为这是因为边缘出现锯齿现象。
到目前为止,我尝试在Canvas上设置CacheMode =“BitmapCache”和/或UseLayoutRounding =“False”。它没有帮助。
如何摆脱这种渲染工件?
P.S。对不起,SO的解析器削减了开始标记。这是指向PasteBin的链接:http://pastebin.com/qtre6XSg
答案 0 :(得分:1)
如果添加ScaleTransform =“1.01”,则边缘将重叠。对不起这个答案,但我认为,鉴于它的工作原理,这可能是您最好的解决方案。