問題タブ [aero]
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.
winapi - win7 で TrackPopupMenu を使用する際の問題
アプリケーションで TrackPopupMenu 関数を使用してコンテキスト メニューを作成しようとしています。その中で使用するコードは次のようになります。
コードは WinXP では完璧に動作しますが、win7 と Vista では動作しません。win7 と vista での問題は、メニューをポップアップするのにかなり長い時間がかかることです。おそらく 1 分以上かかります。しかし、win7やvistaでAeroをオフにするとwinXPと同じようにスムーズに動くので、コード内で何かがAeroと競合しているに違いないと思いますが、それを修正する方法がわかりません。それを手伝ってくれる人はいますか?誰かが私を助けてくれれば、とても感謝しています。
user-interface - UIデザインでAeroガラスをどのように使用しますか
私は昔の時代に書かれたユーティリティをたくさん持っていて、とても時代遅れに見えます。そこで私は最近、Windowsテーマを使用するように設定し、Aeroガラス効果をいくつか取り入れたいと考えました。
実は、適切な使い方がよくわかりません。IE7と現在のFirefox4は、ツールバーを含むウィンドウの上部をガラス張りにしていますが、それは私の場合には実際には当てはまりません。ガラスの境界線を一周するだけのアプリをたくさん見ましたが、ガラス以外のコンテンツは窮屈に見えます。その後、画面に何エーカーものオープンスペースを追加するだけで処理されることがよくあります。
エアロエフェクトを画面デザインに組み込む適切な方法は何ですか?または、それを使用するかどうかを決定しますか?これを扱っている優れたデザインリファレンス、またはおそらく知恵の塊はありますか?
更新: 明確にするために、これらは私たちのメインアプリケーションではなく、これまたはそれを行ういくつかのユーティリティ画面です。それほど複雑ではありません。いくつかの編集コントロールと場合によってはリストを備えた単一のフォームです。下部にあるボタンのストリップ。原則として、メニューとツールバーでAeroを使用するのが標準になっているようですが、ツールバーのないアプリでは、私が見つけることができる標準的な使用法はないようです。
c# - aero の無効化が完了するまで待ちます
私のアプリには、画面イメージをキャプチャする前に DwmEnableComposition(0) を呼び出して aero を無効にするオプションがあります。ご存じのとおり、エアロを無効にすると画面が真っ暗になり、その後通常に戻ります。異なる PC では、システムの速度に応じて 2 ~ 3 秒かかる場合があります。
Thread.Sleep() の代わりにスクリーン キャプチャの前に aero が完全に無効になっているかどうかを判断するより良い方法はありますか?
windows-7 - Windows Embedded Standard 7 で Windows 7 の既定のテーマを使用することはできますか?
Windows Embedded Standard 7 で Windows 7 の既定のテーマ (Windows 7 Basic など) を使用することはできますか? もしそうなら、どのように?
テーマには一般的なコントロールのスタイリングが含まれていると思います。つまり、従来の Windows 95 っぽいものではなく、プログレス バーに "Aero" の外観を与えます。
私の質問の文脈は、Windows 7 ワークステーションから Windows Embedded Standard 7 組み込みデバイスへの WPF アプリケーションの移行です。
delphi - Aero グラスと DoubleBuffered プロパティの Delphi サポート - 何が起こっていて、どのように使用するのですか?
Windows の Aero テーマ グラス機能に対する Delphi 2009/2010 のサポート、正確には DoubleBuffered の意味、および Aero グラスとの関係について混乱しています。DoubleBuffered は VCL のプロパティであるだけでなく、 .net WinFormsにもあることがわかりました。最初は、コモン コントロール ライブラリで使用されるある種のウィンドウ スタイル ビットが設定されているのではないかと考えていました。なぜ使用するのか、いつ使用する必要があるのか?
[更新: ちらつきを軽減するための一般的な手法として、「ダブル バッファリング」とは何かを知っていることを述べる必要があります。 Windows 7. 以下にリンクされているブログ投稿が最も有益なようです。]
特に、DoubleBuffered プロパティに混乱しています。なぜそれが存在するのか、フォームとコントロールのガラス サポートとダブル バッファリングされたプロパティの間の関係がどのように設定されているのかを知りたいです。このような C++ の記事を読むと、ダブル バッファリングについて言及されていないことがわかります。
【追記2:以下、一部事実誤認があり訂正しました】
従来の Win32 アプリで DWM/Aero 合成をオンにしたときに、DWM/Aero 合成が引き起こす「黒がガラスになる」グリッチを回避するために、SetLayeredWindowAttributes を呼び出す方法について話している C++ 開発者を見つけました [ただし、以下のブログ リンクは、これが機能しなくなったことを示しています。 Windows 7 で、Microsoft がブロックするまで、実際には Vista で短時間しか機能しませんでした]。[間違った考えを始める]明るいマゼンタのような他の色を使用して、それをガラスの透明色に変えるべきではありませんか? [間違った考えを終わらせる]
DoubleBuffered を設定する必要がある場合と設定しない場合のルールは何ですか? そもそも DoubleBuffered が VCL に追加されたのはなぜですか? 設定するといつ問題が発生しますか?(リモート デスクトップが 1 つのケースのようですが、それが唯一のケースですか?) そして、それが設定されていない場合、ボタン テキストのレンダリングに問題が発生します。これは、Delphi がデフォルトの「ガラスとして黒をレンダリングする」を変更していないように見えるためです。 " Aero DWM で。
Aero グラスのレンダリングは基本的に奇妙で理解しにくい方法で行われているようです [この機能をラップするだけの Delphi ではなく、Windows 自体によって]、2009/2010 の内部 VCL ソース コードの多くStdCtrls のクラスは、Aero Glass で正しくレンダリングするために多くの複雑なロジックを実行する必要がありますが、まだ多くの問題があり、間違っているように見えます。 [更新 3: ガラスの多くのレンダリング グリッチ、VCL では、一般的なコントロール内で間違ってレンダリングされているようですが、Microsoft は修正を気にしていないようです。要するに、Delphi VCL コードの修正では、古い Windows 共通コントロール ライブラリと最新の [しかし風変わりな] Aero Glass 合成機能が互いにあまり好きではなく、特にうまく連携しないという事実を修正することはできません。このような高品質のテクノロジを構築し、それを世界に広めてくれた Microsoft に感謝します。]
そして、まだ十分に楽しくない場合。ParentDoubleBuffered があるのはなぜですか?
[7 月 30 日の更新: この質問は私にとって興味深いものです。なぜなら、大規模な既存の VCL フレームワークがある場合、この問題を解決するために Windows API に取り組むことは困難な問題であることを示していると思うからです。]
delphi - Glass 上の Delphi ボタン - 見栄えの良いサード パーティ ボタン コンポーネント
Vista および Windows 7 を実行している Aero Glass で使用するように設計された、次のプロパティを持つ Delphi ボタンを探しています。
完全に自己描画された TCustomControl の子孫。
Aero コンポジション (DWM) を使用した Glass ペイン上で見栄えがよく [ユーザーには通常のボタンのように見える方法でレンダリングされ、グリッチはありません]、ボタンの周りに白または黒のリングがなく、キャプションが台無しになる問題もありませんエアロコンポジションによる。(これにより、ガラスに対応するように記述されていないボタンはノックアウトされます。)
TActions へのリンク、グリフ (ビットマップ/画像) のサポートなど、TButton/TBitButton の通常の機能。
オプションで、機能があると便利です:
- 透明度のサポート (オプション。不透明でもガラスの上にきれいに描画できると便利です)。
c# - WPF:ウィンドウのサイズを変更できないようにしますが、フレームは保持しますか?
タイトルバー()のないウィンドウがありますWindowStyle == WindowStyle.None
。ウィンドウ全体がAeroガラス効果を使用しています。ウィンドウのサイズを変更できないようにすると(ResizeMode == ResizeMode.NoResize
)、ガラス効果が消え、コントロールが空中にぶら下がるだけです。(基本的に、ウィンドウ自体は消えますが、その内容は残ります。)
ウィンドウフレームを削除せずにウィンドウのサイズを変更できないようにする方法はありますか?
ボーダレスWPFウィンドウでVistaガラス効果を有効にするという質問を読みましたが、それは私が望んでいることではありません。ウィンドウの境界線を維持したいと思います。ウィンドウの外観の例については、Aeroを有効にしてAlt+Tabキーを押してください。
明確にするために、ウィンドウの境界線にカーソルを合わせたときにサイズ変更カーソルが表示されないようにします。これは基本的に、ウィンドウを次のように見せたいものです。
ソリューションは厳密にWPFである必要はありません。これを実現するためにWin32APIをハッキングしても問題ありません。
c# - キャプションレスの縁取りされた Aero ウィンドウを実現するには?
フォームの境界線を削除する方法は知っていますが、単にキャプションを削除したいだけです。P/Invokes のグーグル検索ではあまり結果が得られなかったので、どうすればそのような結果を達成できるのでしょうか?
winapi - Vista/7: ガラスの色を取得するには?
どのように使用しますDwmGetColorizationColor
か?
ドキュメントには、次の 2 つの値が返されると記載されています。
0xAARRGGBB
ガラス合成に使用される色を含む32 ビット- 「色が不透明なブレンドである場合」に真であるブール値パラメータ (それが何を意味するにせよ)
これは私が好きな色、すてきなピュークグリーンです。
色が緑がかっており、半透明のタイトル バー (白い背景に対して) が鼻水色を非常にはっきりと示していることがわかります。
私はWindowsから色を取得しようとしています:
そして、私は得る
ドキュメントによると、この値の形式はAARRGGBB
であり、以下が含まれます。
これはおそらく、色が (10, 15, 4) で、不透明度が ~5.1% であることを意味します。
しかし、この RGB 値を実際に見ると、私が望んでいたスノット グリーンにはほど遠いものです。ここは
- (10, 15, 4) 不透明度ゼロ (元の色)、および
- (10,15,4) 白/市松模様の背景に対して 5% の不透明度:
Lime
緑ではなくDwmGetColorizationColor
、ほぼ完全に透明な黒を返します。
問題は、Windows Vista/7 でガラスの色を取得する方法です。
を使ってみDwmGetColorizationColor
ましたが、うまくいきません。
同じ問題を抱えている人ですが、リスを引き付けるため
のより良い光沢のある写真:
要約すると、DwmGetColorizationColor は、現在の色を不透明な表面に適用しようとするアプリケーションにはまったく使用できません。
私はこの男のスクリーンショットが私のものよりずっと好きです。彼のスクリーンショットをテンプレートとして使用して、さらにいくつかのキラキラを作成しました。
最後の 2 つのスクリーンショットでは、アルファ ブレンド チップは真に部分的に透明な PNG であり、ブラウザーの背景にブレンドされます。涼しい!(私はそのようなオタクです)
編集 2: それらを虹色に配置する必要がありました。(私はそのようなオタクです)
編集 3: さて、もちろん、黄色を追加する必要があります。
文書化されていない/サポートされていない/壊れやすい回避策
DwmApi.dll
エントリ ポイント 137からの文書化されていないエクスポートがあり、これを次のように呼びDwmGetColorizationParameters
ます。
最初のパラメーターに関心があります: ColorizationColor
.
レジストリから値を読み取ることもできます。
したがって、appcompat の問題を作成する毒を選択します。あなたはできる
- 文書化されていない API に依存する (これは悪い、悪い、悪い、いつでもなくなる可能性があります)
- 文書化されていないレジストリ キーを使用します (これも悪いことであり、いつでも消える可能性があります) 。
こちらもご覧ください
- GetThemeColor / Visual Styles API の有効なパラメーターの組み合わせのリストはありますか
- Windows はどのように Aero グラスの色を変更しますか?
- DWM - DWMGetColorizationColor を使用したカラー化の色処理
- 不透明なサーフェス レンダリング用の Aero グラスのベース カラーを取得する
1年以上前からこの質問をしたいと思っていました。答えることは不可能であり、誰かに実際に注意を向けてもらう唯一の方法は、カラフルなスクリーンショットを用意することだと常に知っていました。開発者は光沢のあるものに惹かれます。しかし、マイナス面としては、ルアーを作るためにあらゆる種類の作業をしなければならなかったことを意味します.
java - Aero Glass エフェクトと SWT の組み合わせ
お気に入りのプロジェクトとして、私は Aero Glass 効果を SWT アプリケーションに統合するという概念を試してきました。Łukasz Milewski は、これをどのように達成できるかを説明する優れたブログ投稿を行っています。
コントロールを追加するまで、これは美しく機能します。これにより、黒は透明のままになります。
フォローアップ投稿でもこれを行う方法を示していますが、SWT ライブラリを変更する必要があります。(少なくとも、プライベート SWT 関数は でオーバーライドされるため、私はそう信じてい@Override
ます。)
コントロールが透明にならないようにするにはどうすればよいですか? さらに良いことに、透明性の恩恵を受けるにはどうすればよいですか (たとえば、その上に画像を配置するなど)、それを賢明な方法で使用するにはどうすればよいですか?