2

私は自分が使用している解決策を持っていますが、それは私が必要とするすべての能力を実際に私に与えているわけではありません。

現在、グリッドコントロールの背景を、ビジュアルコンテナに楕円を含むVisualBrushに設定しています。これにより、描画された正方形の背後に背景色を設定することができなくなります(または少なくともこれまでの知識では)。

スナップして配置する機能のマーカーとして、これらの正方形を使用しています。写真を参照してください。

http://imgur.com/AtNYp

背景パターンを維持し、背景色を設定する方法はありますか?別のアプローチも歓迎されます。これは(部分的に)機能するため、これに雪が降ったような気がします。

需要のため:

  brush = new VisualBrush();
  brush.Stretch = Stretch.Fill;
  brush.TileMode = TileMode.Tile;
  brush.Viewport = new Rect(0, 0, SnapDistance, SnapDistance);
  brush.ViewportUnits = BrushMappingMode.Absolute;
  brush.Viewbox = new Rect(0, 0, SnapDistance, SnapDistance);
  brush.ViewboxUnits = BrushMappingMode.Absolute;
  ellipse = new Ellipse() { Fill = new SolidColorBrush(Colors.Blue), Width = 2, Height = 2 };
  brush.Visual = ellipse;

これは私がgrid.Backgroundに設定したものです。私がやりたいのは、リンクに表示されているパターンを描画し、その上にドットパターンを使用して背景に色を設定できるようにすることです。

4

1 に答える 1

1

スナップポイントを使用してCanvasでグリッドをオーバーレイするか、スナップポイントを使用して装飾レイヤーを作成できます。

MSDNページから引用

Adornersは特別なタイプのFrameworkElementであり、ユーザーに視覚的な手がかりを提供するために使用されます。他の用途の中でも、Adornersを使用して、要素に機能ハンドルを追加したり、コントロールに関する状態情報を提供したりできます。

したがって、コントロールのレイアウト(Z順)は次のようになります。

  • グリッド
  • スナップポイントとのオーバーレイ(イベントがどのように処理されるかわからない)
  • あなたの要素

また

  • グリッド
    • 装飾層
  • あなたの要素
于 2011-10-26T07:31:45.287 に答える