本当に何が起こっているのか...矛盾ありませんが(あなたのパスが非常に小さい)あなたは本当に小さなレンダリング何かを取っているということです。小さな箱で

見
...と非常に大きな、それをスケールアップし、UseLayoutRounding
理由を経由して、最も近い全体ピクセルに丸めるためにレイアウトを伝えます実際に内容をレイアウトしていないので、Path
がCanvas
から独立してスケールされているという結果は信頼できません。だから、あなたのパスポイントの1つが不均一なピクセル境界(いくつかの画面解像度ではなく他のものではない)に着くと、アンスケールされたキャンバス内で最も近い仮想ピクセルに丸められ、Viewbox
からスケーリングされ、 (Canvas
のスケーリングによって決定された同じ尺度Viewbox
を使用して)丸め誤差を悪化させる最も近い全体のピクセルに戻します。あなたは私たちがStackPanel.Background
(デフォルトは透明です)オフにした場合、これは、より簡単に示す参照グリーンへCanvas.Background
を設定し、ストロークの色に不透明度を下にダイヤルすることができます:あなたがパスを参照することができ

四捨五入はキャンバスとは異なります
UseLayoutRounding
をオフにする必要があります。操作で小数点が含まれるようにするか、レイアウトを単純化してエラーが発生しないようにする必要があります。例えば
、あなたが不適切と余分な固定サイズのキャンバスを除去し、Path.Stretch = Uniform
を設定することにより、パス自体を拡張させた場合、あなたがで終わる:
もたらす
<StackPanel Background="Red" Width="400" UseLayoutRounding="True">
<StackPanel.Resources>
<Style TargetType="Viewbox">
<Setter Property="Height" Value="400" />
<Setter Property="Margin" Value="0,0,0,50" />
</Style>
<Style TargetType="Path">
<Setter Property="Stroke" Value="Blue" />
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="Stretch" Value="Uniform" />
</Style>
</StackPanel.Resources>
<Viewbox>
<Path Data="M 1,1 h 3 v 3 h -3 z" />
</Viewbox>
<Viewbox>
<Path Data="M 1,1 h 4 v 4 h -4 z" />
</Viewbox>
</StackPanel>
: 
おそらくあなたが実際に探していたもの
ただし、あなたは実際に複数のパスを持っていてCanvas
の中に入れることを意図していましたが、実際に独自のレイアウトを行うコンテナを使用することをお勧めします。Grid
この方法では、 Grid
ロックステップでそれらを保持する(Canvas
は子供をレイアウトしません)。コードは次のようになります。
<StackPanel Background="Red" Width="400" UseLayoutRounding="True">
<StackPanel.Resources>
<Style TargetType="Viewbox">
<Setter Property="Height" Value="400" />
<Setter Property="Margin" Value="0,0,0,50" />
</Style>
<Style TargetType="Path">
<Setter Property="Stroke" Value="Blue" />
<Setter Property="StrokeThickness" Value="2" />
<Setter Property="Stretch" Value="Uniform" />
</Style>
</StackPanel.Resources>
<Viewbox>
<Grid Width="5" Height="5">
<Path Data="M 1,1 h 3 v 3 h -3 z" />
</Grid>
</Viewbox>
<Viewbox>
<Grid Width="6" Height="6">
<Path Data="M 1,1 h 4 v 4 h -4 z" />
</Grid>
</Viewbox>
</StackPanel>
、結果は第2の容器なしで、これは-ck役立ちます
希望のものと同一である
私はあなたのXAMLを貼り付けコピーして、それが下のように見えます
2枚の写真、一番上の写真のように見えるのですか? –
xamlをWindows App Storeプロジェクトのページに貼り付けましたか?ローカルマシン上でxamlを実行し、エミュレータ上の下のイメージを実行すると、トップイメージを取得します。 –
これは自動スケーリングによるものです。メインモニタとエミュレータの画面サイズを記録します。メインモニターの解像度を実験して、効果があるかどうかを確認してください。 –