6

マウスカーソルと一緒に動く装飾があります。ただし、マウスがウィンドウの外に移動するとすぐに、装飾が切り取られます。

装飾レイヤーを画面全体に拡張するか、新しい装飾レイヤーを作成することは可能ですか。

4

2 に答える 2

0

多分彼は私が同じ問題に直面している選択領域を描きたいと思っていますが、下のリンクを見ることができます。 http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-2
背景が透明な場合、マウス イベントを受信できないことがわかりました。装飾に背景を与えれば、すべて問題ありません。

protected override void OnRender(DrawingContext dc) {
    dc.DrawRectangle(bg, null, new Rect(RenderSize));
    dc.DrawRectangle(Brushes.Red, null, new Rect(start, end));
}

bg ブラシは次のようになります。

private Brush bg = new SolidColorBrush(Color.FromArgb(0x01, 0, 0, 0));
于 2012-04-12T07:41:07.293 に答える
0

おそらくこれを行うことができますが、装飾層で何をしたいのか正確にはわかりません. 私の解決策では、ウィンドウにフォーカスがある限り、装飾者はマウスを追跡できます。より良いサポートができるように、あなたの最終目標を共有してください。

私の考えは、背景が透明なフルスクリーンのボーダーレスウィンドウを作成して、必要なコントロールを保持することです。ウィンドウの不透明部分はグリッドの内側になります。

  1. 新しいウィンドウを作成します。その WindowBorderStyle を「None」、Width と Height を「Auto」、「WindowState」を「Maximized」に設定します。(現在IDEを見ていないので、プロパティ名が少しずれているかもしれません。)

  2. グリッド (または使用しているプラ​​イマリ コンテナー) の XAML コードを元のウィンドウにコピーし、それを新しいウィンドウに貼り付けます。新しいウィンドウの空のグリッドを、貼り付けたグリッドに置き換えてください。

これにより、アドナー レイヤーがウィンドウ全体でマウスに追従できるようになります。

繰り返しますが、ここにあなたの正確な目標を投稿してください。そうすれば、あなたの特定のニーズにより適した答えを出すことができます.

于 2011-02-02T19:13:00.633 に答える