2012-04-29 7 views
0

開始時にトレイアイコンしか表示されないWPFアプリケーションを構築したいと思います。ユーザーがトレイのコンテキストメニューからメニューエントリとやりとりすると、Windowsが表示されます。MainWindowがロードされていますが、いつでも表示されません。

MainWindowをロードする必要があるので、クリップボードの変更イベントを聴くことができます。しかし、私はそれを見せたくありません。

は、私が試した:

<Window x:Class="ClipboardListener.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:tb="http://www.hardcodet.net/taskbar" 
    Title="Should not see me" 
    ShowInTaskbar="False" Visibility="Collapsed" Opacity="100" 
    Width="320" Height="240"> 

しかし、それはまだ現れ? WinAPIでクリップボードイベントリスナーを登録するためには、ウィンドウが必要なため、VisibilityをHiddenに設定することはできません。

すべてのアイデア?

答えて

2

私は最近非常に似た仕事をしています。ウィンドウを見えなくする、私のグーグル、私のstackoverflowingなどのすべての試みは失敗しました。最後に、私は、目に見えないウィンドウが何らかの理由でWPFにあってはならないと感じていました。 WinFormsのようなTrayIconコントロールがあれば簡単な作業になります。残念ながら、WPFにはTrayIconがありません。これは、WinFormsに存在するものにつながります。

Here's a good articleです。そして、私のこのDLLを使用するコード:

<Window x:Class="ScannerClientWpf.TrayIcon" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:ni="clr-namespace:Hardcodet.Wpf.TaskbarNotification;assembly=Hardcodet.Wpf.TaskbarNotification" 
    Title="TrayIcon" WindowStyle="None" AllowsTransparency="True" Background="Transparent" ShowActivated="False" ShowInTaskbar="False" > 
<Grid> 
    <ni:TaskbarIcon IconSource="/ScannerClient;component/app.ico" 
        ToolTipText="ScannerClient"> 
     <ni:TaskbarIcon.ContextMenu> 
      <ContextMenu> 
       <MenuItem Header="Close" Click="MenuItem_Click"/> 
      </ContextMenu> 
     </ni:TaskbarIcon.ContextMenu> 
    </ni:TaskbarIcon> 
</Grid> 

+0

私はちょうどウィンドウが消え作るの問題を持っていた、すでにTrayIconにするために、この実装を使用しています。これはトリックでした。ありがとう! – metacircle

関連する問題