2011-08-05 13 views
4

Windows Phone 7アプリの背景をぼかして、常に上に表示されるポップアップウィンドウにユーザーの注意を集中させる最善の方法です。WP7背景のぼかしの効果

WP7 Blured

私の考えは次のとおりです。

  1. (凍結可能か何かにそれを回すことによって)バックグラウンドグリッドのメモリ内のスクリーンショットを作成します。
  2. バックグラウンドグリッドと重複しているが、ポップアップの下(z-インデックス付き)にある画像を追加します。

まだアプリケーションバーを重ねることはできません。

この時点で解決策がある場合は、アドバイスをお願いします。

答えて

4

あなたのためにいくつかのポインタ...

残念ながらSilverlightのBlurEffectや他のビットマップ効果didn't make it into Window Phone 7、あなたはぼかしを自分で実装する必要がありますので。これは実際にはかなり簡単です。Gaussian Convolution Filterを使用してください。

この効果を実現するには、アプリケーションのビジュアルをWriteableBitmapにキャプチャし、画像を操作してぼかしを作成し、この画像をPopUpを使用してオーバーレイします。私はここでフライアウトテキストアニメーションについて書いたブログ記事で似た何かをした次のように

http://www.scottlogic.co.uk/blog/colin/2011/04/metro-in-motion-3-flying-titles/

は、あなたのルートは、ビジュアル検索:

var rootElement = Application.Current.RootVisual as FrameworkElement; 

がポップアップには、このUIのコピーを追加します。次のように:

_backgroundMask = new Rectangle() 
    { 
    Fill = new SolidColorBrush(Colors.Black), 
    Opacity = 0.0, 
    Width = rootElement.ActualWidth, 
    Height = rootElement.ActualHeight 
    }; 
    _popupCanvas.Children.Add(_backgroundMask); 

    _targetElementClone = new Image() 
    { 
    Source = new WriteableBitmap(element, null) 
    }; 
    _popupCanvas.Children.Add(_targetElementClone); 

をして、それを示しています

_popup.IsOpen = true; 

バックグラウンドをぼかす方法を教えてください!

脇に、アプリケーションバーのビジュアルをオーバーレイまたはキャプチャすることはできません。この変換を実行する前に非表示にしてください。

最後に、背景をぼかすことは本当に「メトロ」ではありません。これをやりたいですか?

+0

いいえ私はそうではありません。ユーザーをポップアップに集中させる手段として何をアドバイスしますか?私は基本的な "黒い背景"アプリケーションを持っていることを考えると、背景がすべてぼやけて見えます。 –

+1

私の意見では、単純な不透明マスクがあります。私が上で与えたコードを使用してください。しかし、Opacity = "0"の黒い矩形でポップアップを塗りつぶすだけです。5 " – ColinE

+0

いいですね。ありがとう。 –

1

ぼかしの代わりに、ページの上部に半透明のレイヤーを使用してください。

このようなエフェクトを作成する前に、アプリケーションバーを非表示にして、その上に何も配置できないようにしてください。

+0

半透明レイヤーを追加するにはどうすればいいですか?どのコントロールを私の窓の上に広げますか? –

+2

@Maxim 'Rectangle'を追加し、' Opacity'を設定するとそれが行われます。 –

関連する問題