0

xamlpadx(500%)で十分に大きくズームすると、境界線の内側に線が引かれているのがわかります。私のアプリでは、これは一部のコントロールの通常のズームレベルでも発生します。

なぜそれがもっと重要なのですか、私はそれについて何ができますか?

これは私のXAMLコードです:

<Border Background="#000000" BorderBrush="#000000" BorderThickness="4" CornerRadius="4">    
   <StackPanel>               
   </StackPanel>
</Border>

欠陥のある表示にパディング/マージン/ボーダーが含まれていないことが確実になるまで、すべてを削除しました。

編集2: 私はすぐに答えを受け入れるべきではありませんでした。SnapsToDevicePixelsを使用し、コントロールの内部の色を境界線と同じ色に設定しましたが、同じ場合にエラーが以前と同じであることに気付きました。マイクロソフトがこれをすぐに修正することを願っています!

4

3 に答える 3

1

これは確かに WPF のバグのようです。ただし、特定のケースでは、2 つの回避策を使用できます。

<Border Background="#000000" BorderThickness="0" CornerRadius="4">
   <StackPanel Margin="4">               
   </StackPanel>
</Border>

または

<Border Background="#000000" BorderThickness="0" CornerRadius="4">
   <Border Background="#000000" BorderThickness="0" CornerRadius="4" Margin="4">
       <StackPanel>               
       </StackPanel>
    </Border>
</Border>
于 2009-11-16T15:00:51.027 に答える
1

この動作は、WPF の動作に固有のものです。バグではありません。座標は整数ではなくすべて double であることに注意してください。これらは正確な単位ではありません。十分に拡大すると、エラーが表示されます。

以下、1年ほど前の記憶ですが、正しいと思います。

手動で wpf レンダリング コンテキストに描画している場合は、「ガイドライン」システムを使用して整列させることができます。これは、ストック UI スタイルのボタンや物がどのように描画されるかです。リファレンス ソース ( http://blogs.msdn.com/rscc/default.aspx ) を参照してください。一般的に、このテーマに関する優れた msdn ページもあります: http://msdn.microsoft.com/en-us/library/aa970908.aspx

于 2009-11-17T01:49:33.780 に答える