2017-05-07 12 views
0

私はX直線を描きます。同じ太さなどですが、4行目ごとに視覚的に違って見えます - それはより薄いです。WPFは同じ行を別々に表示します

<Canvas Name="Canvas"> 
    <Line X1="100" Y1="100" X2="500" Y2="100" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="125" X2="500" Y2="125" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="150" X2="500" Y2="150" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="175" X2="500" Y2="175" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="200" X2="500" Y2="200" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="225" X2="500" Y2="225" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="250" X2="500" Y2="250" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="275" X2="500" Y2="275" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 
    <Line X1="100" Y1="300" X2="500" Y2="300" Stroke="Black" StrokeThickness="1" RenderOptions.EdgeMode="Unspecified"/> 

</Canvas> 

レンダリングオプションがエイリアスか未指定かは関係ありません。どちらの出力も同一でない行を表示します。 Windows DPIを100%に設定しても、同じように見えます。

どのように修正できましたか?誰でもこれを経験しましたか?

+0

あなたのコードを試しましたが、シナリオを再現できません。別のマシンでコードを実行しようとしましたか? – taquion

+0

いいえ、@ megadanの答えはそれを解決します。 –

答えて

1

CanvasSnapsToDevicePixelsを有効にしてみてください。

<Canvas Name="Canvas" SnapsToDevicePixels="True"> 

これにより、アンチエイリアスアーチファクトが低減され、ピクセル境界線が描画されるようになります。

関連する問題