0

私はこのようなものが欲しい:

トレイポップアップ
(出典:cybernetnews.com

このウィンドウはサイズ変更できず、関連するシステムトレイアイコンの上に配置されます。

私はこれを持っています:

トレイポップアップ

これはサイズ変更可能で、好きな場所に移動できます。Win 7でボリュームコントロールをクリックすると、常にアイコンの真上にポップアップ表示されます。これは理想的です。

私は同じ問題を解決しようとしていると思うこの参照を見つけました(画像が死んでいるのでわかりません)、

しかし、私はWPFを使用しており、それらが参照するこれらのFormオブジェクトをWindowオブジェクトから取得する方法がわかりません。これは、現時点での私のウィンドウのXAML宣言です。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Class="WirelessControl.Window1"
x:Name="Window"
Title="Window1"
Width="260" Height="370" mc:Ignorable="d" WindowStyle="None"></Window>

これがWindowsでどれほど一般的であるかに基づいて、これを行うにはかなり簡単な方法が必要だと思います。

ResizeMode="NoResize"ウィンドウの境界線が消えてしまうので、仕方がありません。

みんなありがとう、私は十分に包括的だったと思います。

4

3 に答える 3

5

Shell_NotifyIconGetRectを使用して、通知アイコンの場所を取得できます。次に、その場所に一致するようにウィンドウを再配置できます。これがボリュームコントロールUIの機能です。残念ながら、Win7でのみ機能します。

古いOSで作業する必要がある場合は、NIN_BALLOONSHOWメッセージの時点でマウスカーソルの位置を取得できます。これは、ボリュームコントロールUIが行っていた方法です。

于 2010-06-08T03:31:10.280 に答える
3

私はこれを行うことについての一連の投稿をここに書きました(そしてサンプルプロジェクトを作成しました):http://blog.quppa.net/2011/01/03/windows-7-style-notification-area-applications-in- wpf-recap-sample /

取り上げるトピックには、ガラスの境界線を削除せずにウィンドウのサイズ変更を削除すること、通知アイコンの位置を見つけること(Shell_NotifyIconGetRectを使用するWindows 7と、よりハッキーな方法を使用する以前のバージョンの両方)、タスクバーのドッキング配置を見つけること、およびそこにあるときに正しい作業領域を見つけることが含まれます複数の画面(モニター)が存在します。私は実際にはそれについて書きませんでしたが、サンプルコードには、DWM(読み取り:Aero)が有効になっていないシステムのフォールバックが含まれています(つまり、Windows 7通知領域アプリケーションのスタイルでカスタム1ピクセルの境界線を描画します)。

于 2011-01-03T13:30:24.453 に答える
0

この投稿であなたと同じように質問に答えました

唯一の問題は、サイズ変更カーソルがまだ表示されていることです。ウィンドウのメッセージループを操作することで、それらを隠すことができると思います。

于 2010-06-01T15:59:15.180 に答える