問題タブ [opacitymask]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C#、WPF-VisualBrushおよびOpacityMask
コントロールの背景の一部が透明なUserControlを作成する必要があります。透明部分は、CornerRadiusが2のボーダーの形に切り抜かれています。デザイン上必要です。
これが機能していない私のコードです:
いくつか変更を加えたので、これをXamlPadに直接ドロップできるはずです。
何らかの理由で、BorderのOpacityMaskに設定されているVisualBrushがまったく機能していません。OpacityMaskは、すべてが完全に表示されているだけです。テストのために、LinearGradientBrushをすばやくドロップしましたが、期待どおりに機能しました。
VisualBrushとOpacityMaskを一緒に使用する際に問題はありますか?ここで何が問題になっていますか?
これが私が達成しようとしていることのスクリーンショットです:
ScreenShot http://monitor.utopiaselfscan.com/Screen.png
UserControlは、エンティティ番号、進行状況、時間などを示すヘッダーです。これらは30%の透明度の黒で、丸みを帯びた長方形の不透明度マスクの切り欠きがあります。私は通常、このようなものをレンダリングするために画像を使用しますが、グラフィックアーティストはガラスのような効果に夢中になる可能性があります。
wpf - wpfで背景をグレースケールにする
多色のコントロールがたくさんあるウィンドウを考えてみましょう。ポップアップしたばかりのパネルを除いて、すべてのコントロールの色が失われる (すべてがグレースケールで表示される) ような形で何らかのトリガーが発生したときに、この上にパネルを配置したいと考えています。誰かがこれで私を助けることができますか??
javascript - Javascript を使用した HTML テーブルの「無効化」
最近、多くのサイトでこれが行われているのを見てきましたが、追跡できないようです。基本的に、ボタンがクリックされたときにパネル全体 (HTML テーブルのフォーム内) を「無効」にしたいと考えています。
無効にするということは、テーブル内のフォーム要素を使用できないようにし、テーブルをフェードアウトさせたいということです。
これを達成するために、テーブルの上に「ベール」を配置し、絶対に配置された div を不透明度の低い白い背景にします (その後ろのテーブルを見ることができますが、div があるため何もクリックできません)。目の前です)。これにより、必要なフェード効果も追加されます。ただし、ベールの高さを 100% に設定すると、画面のサイズ (スクロールを含まない) になるだけなので、ユーザーが上下にスクロールすると、ベールの端が表示され、きれいではありません.
これは通常、別の方法で行われると思います。これを達成するためのより良い方法として、誰か提案がありますか?
silverlight - Silverlight 3 の絶対 GradientStops を使用した LinearGradientBrush の OpacityMask
私の質問はこれに似ています。
ただし、不透明マスクに LinearGradientBrush を使用しているため、そのスレッドの答えはうまくいきません。
私は3行のグリッドを持っています:
グリッドのコンテンツは、グリッドの上部と下部 (1 行目と 3 行目) で半透明にする必要があります。
不透明度を調整できないため、クリッピングを使用できないことを理解しています。したがって、不透明マスクを使用する必要があると思います。これらは画像またはブラシをコンテンツとして受け取りますが、後者の方がこの問題には適していますが、GradientBrush のオフセットをグリッド行の高さの絶対値に設定する方法の問題が生じます。
また、MVVM パターンを使用しています。オフセットは FrameworkElement から派生していないため、バインドは機能しません。私が今見ることができる唯一の解決策は、完全なブラシをビューモデルにバインドし、グリッドのサイズが変更されるたびに調整することです。あまり良くありません。よりエレガントなソリューションはありますか?
私がやりたいことは、このようなものです(RowDefinitionsとコンテンツはスキップされました)
擬似コード:
コンテンツが 3 つの行にまたがっているため、グリッドなどを分割することはできません。DrawingBrush はそれをうまく解決すると思いますが、それは SL の家に住んでいるわけではありません。
Silverlight3 を使用しています。
wpf - OpacityMask が WPF WindowsFormsHost で動作しませんか?
WindowsFormHost オブジェクトを介してホストされているコントロールに丸い境界線を配置しようとしています。OpacityMask に何を設定しても、レンダリングには影響しないようです。見逃したものはありますか?
これが私が使用しているXAMLコードです。子コントロールは実行時に追加されます。さまざまなマスクの組み合わせを試しましたが、どれもうまくいきませんでした。どんな助けでも大歓迎です。ありがとう!
c# - SnippingTool効果を使用したC#WPFグラブスクリーンショット
スクリーンショット取得機能をWPFアプリに統合しようとしていますが、SnippingToolのように見せたいと思います。
これまでのところ、不透明度を0.5に設定し、背景を暗くしたフルスクリーンウィンドウ(キャンバス付き)を作成することで、同様のことを実現できました。どこかをクリックしてドラッグを開始すると、白い長方形が描画され、これと同様の効果が生成されます。
私が欲しいのは、その長方形の内側の部分が背景のキャンバスに不透明な穴を開けて、選択した領域を通して見えるようにすることです-スニッピングツールのように。
問題は、.NETにかなり慣れていないため、どこからどのように始めればよいかわからないことです。スクリーンショットウィンドウのOpacityMaskフィールドでいくつかの調査とテストを行いましたが、どこにも行きませんでした。
これが現在の効果を示す小さなビデオです。
編集:また、ボーナスの質問として、複数のモニター(仮想画面)にまたがるスクリーンショットを取得する簡単な方法はありますか?Graphics.CopyFromScreen()
1画面でしか動作しないようです。
すでにこれを修正しており、考えられるすべての奇妙な仮想デスクトップレイアウトで機能するようです。
wpf - WPFGroupBoxヘッダーのカスタマイズ
カスタマイズしたいので、標準のGroupBoxテンプレートを編集しました。他のカスタマイズとは別に、GroupBoxヘッダーを左または右ではなく中央に水平に配置する必要がありました。ヘッダーの配置は問題ではありませんが、実際の問題は、ボーダーコントロールに対して定義されたOpacityMaskです。不透明度マスクは、境界線が描画されないグループボックスヘッダーの後ろの透明なスペースを設定します。ヘッダーを中央に設定したときに、グループボックスヘッダーの後ろに透明なスペース/ギャップを配置する方法がわかりません。
XAMLは次のようになります(ヘッダーの周囲の境界に透明なギャップを設定する「Border.OpacityMask」で始まるセクションに移動してください)
よろしくお願いします。
-ワジャハット
xaml - 市場のようなパノラマの背景に透明フィルターを追加する
パノラマの背景に透明なレイヤーを追加して、背景画像を暗くして、画像の色に関係なくコンテンツを表示できるようにしようとしています。WP7 Market Place や電話の Pictures Hub と同じように。
不透明マスクで遊んでみました。不透明マスクとして使用するために、paint.net で透明な画像を作成しました。
そして、私のパノラマで次のように使用します。
ただし、これにより、透明な画像がすべての上にあるかのように表示されるコンテンツを含むページ全体が暗くなります。ここで見逃しているトリックはありますか。おそらく、グリッドに不透明度を追加しますか?
wpf - 不透明度マスクを反転
Xaml の次の部分を検討してください。
OpacityMask の非透過部分のみが TextBlock の Foreground であるため、このように表示されます。
このようにTextBlockの前景と背景の色を切り替えると
これは、前景が透明であるにもかかわらず、その背後の背景が透明ではないため、役に立たない OpacityMask になるためです:)
とにかくこれを手に入れることはできますか?基本的に反転した OpacityMask
ここでこれを行う他の方法がありませんか?
更新
明確にするために、私の例は TextBlock に関するものですが、何でもかまいません。Ellipse/Image/Pathなど。私が求めている機能は「Invert OpacityMask」です
wpf - スケーリングしない不透明マスクをwpfで作成するにはどうすればよいですか?
OK、透明度のある PNG-24 を作成しました。これは基本的に、黒と白の代わりに黒と透明の間の「色」を使用するグレースケール画像です。これを行ったのは、これを色付きの四角形の不透明度マスクとして使用できるようにするためです。したがって、単一のグラフィックのみを使用して、必要な色で画像をレンダリングします。
しかし、私の人生では、WPFにda * nイメージのアンチエイリアスを停止させることはできません!!
ブラシが適用される四角形に「SnapesToDevicePixels」を設定しました... ImageBrush のスケールを「なし」に設定しました... ViewPort と ViewBox を絶対単位に設定し、正確にソース画像。しかし、私が何をしようとしても、WPF は物事をスムーズにしようとしているのです! これは非常にイライラします!!!
それで...画像を不透明マスクとして使用する方法を知っている人はいますか?描画したとおりに WPF にレンダリングしてもらいたいだけです。