私は WFP でアプリケーション C# を構築しています。形状を描画しようとしています。各形状はクラスに属し、そのようなクラスには外側の形状のポリゴンと、実際の 2D オブジェクトのように見せるための 1 ~ 3 つのポリラインが含まれています。その場で形状全体のいくつかのプロパティ(色、可視性など)を変更できる方法 希望の高さと幅に応じて、ループによっていくつかのポリラインが作成されると言わざるを得ません
しかし、現在、いくつかのポリラインのレンダリングで問題に直面しています。デバッグの最後に抽出されたポイントを表すためにペイントを使用すると、ポイントは正しい位置 (x、y) にありますが、最終的な画像はあまり正確ではありません。最終結果が、影、ぼかし、またはエッジ効果のないビットマップ ピクセルのように見えるようにしたい..
これは一例です (Panel はグリッドに付けられた名前です)
public partial class Window1 : Window {
private Polyline zigzag;
public Window1() {
InitializeComponent();
PointCollection points = new PointCollection();
ArrayList axisX = new ArrayList();
ArrayList axisY = new ArrayList();
zigzag = new Polyline();
zigzag.Stroke = Brushes.Black;
int count = 1;
Boolean increase = true;
//the number 60 in this loop is to represent the width of the main shape
for (int p = 3; p < 60 - 3; p++) {
if (count == 1) {
axisX.Add(p);
axisY.Add(5);
increase = true;
}
if (count == 4) {
axisX.Add(p);
axisY.Add(2);
increase = false;
}
if (increase) {
count++;
}
else {
count--;
}
}
for (int i = 0; i < axisX.Count; i++) {
//the number 10 is to represent the position where the Poliline is to be placed
int tmpx = 10 + (int)axisX[i];
int tmpy = 10 + (int)axisY[i];
points.Add(new Point(tmpx, tmpy));
}
this.zigzag.Points = points;
RenderOptions.SetEdgeMode(Panel , EdgeMode.Aliased);
Panel.Children.Add(zigzag);
}
}
図は、上に描かれたジグザグを示し、下にどのように見えるかを示しています