2011-10-26 8 views
2

私が使用する解決策がありますが、私が必要とするすべての能力を実際に与えるわけではありません。グリッドコントロールにスナップパターンを描く

今は、グリッドコントロールの背景を、そのビジュアルコンテナに楕円を含むVisualBrushに設定しています。これは私が背景色を設定すること(または少なくとも今まで私の知る限り)は描画された四角形の下に不可能になります。

私はこれらの四角形をマーカーとして使用しています。写真を参照してください。

http://imgur.com/AtNYp

私の背景パターンを維持し、また、背景色を設定することができるようにするための可能な方法はありますか?もう1つのアプローチも歓迎されています。私はこの部分に雪が降ったように感じます(部分的に)。需要へ

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に設定したものです。私がしたいのは、リンクに表示されているパターンを描画し、それにドットパターンを使って背景に色を設定できるようにすることです。

+0

痛みのポイントを使用してサンプルコードを提供してください。 – Fischermaen

+0

あなたが達成しようとしていることは不明です。背景が白以外のものになりたいですか?あなたは今持っているコードを投稿できますか? –

+0

私のVisualBrushのコードが追加されました – Gabriel

答えて

1

キャンバスにグリッドをスナップポイントでオーバーレイすることも、スナップポイントでアドーナーレイヤーを作成することもできます。

MSDN page

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

だから、(Z-順)コントロールのレイアウトは次のようになります。

  • グリッド
  • オーバーレイスナップ点で(イベントは、その後どのように処理するかわかりません)
  • あなたの要素

または

  • グリッド
    • adorner層
  • あなたの要素
+0

Karel、まず、あなたの返事に感謝します。もし私がそれを働かせたら、あなたの答えを調べて投票します。 – Gabriel

+0

ありがとう、あなたを助けてくれることを願っています(UI要素のドラッグ&リサイズを有効にする例:http://denisvuyka.wordpress.com/2007/10/15/wpf-simple-adorner-usage-with-drag-and-resize-操作/) –

+0

Adornerはグリッドコンポーネントで動作していませんか? AdornerLayer.GetAdornerLayer(グリッド)を取得しようとすると、それはヌルを返します!助言がありますか? – Gabriel