TaskbarItemInfo クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
タスク バーのサムネイルを表示する方法に関する情報を表します。
public ref class TaskbarItemInfo sealed : System::Windows::Freezable
public sealed class TaskbarItemInfo : System.Windows.Freezable
type TaskbarItemInfo = class
inherit Freezable
Public NotInheritable Class TaskbarItemInfo
Inherits Freezable
- 継承
例
次の例は、マークアップで を作成する方法を TaskbarItemInfo 示しています。 TaskbarItemInfoには、タスク バー項目から Play コマンドと Stop コマンドへのアクセスを提供するオブジェクトのコレクションThumbButtonInfoが含まれています。
<Window.TaskbarItemInfo>
<TaskbarItemInfo x:Name="taskBarItemInfo1"
Overlay="{StaticResource ResourceKey=StopImage}"
ThumbnailClipMargin="80,0,80,140"
Description="Taskbar Item Info Sample">
<TaskbarItemInfo.ThumbButtonInfos>
<ThumbButtonInfoCollection>
<ThumbButtonInfo
DismissWhenClicked="False"
Command="MediaCommands.Play"
CommandTarget="{Binding ElementName=btnPlay}"
Description="Play"
ImageSource="{StaticResource ResourceKey=PlayImage}"/>
<ThumbButtonInfo
DismissWhenClicked="True"
Command="MediaCommands.Stop"
CommandTarget="{Binding ElementName=btnStop}"
Description="Stop"
ImageSource="{StaticResource ResourceKey=StopImage}"/>
</ThumbButtonInfoCollection>
</TaskbarItemInfo.ThumbButtonInfos>
</TaskbarItemInfo>
</Window.TaskbarItemInfo>
次のマークアップとコードは、その完全なコンテキストの前の例を示しています。 アプリケーションでは、 を BackgroundWorker 使用して 0 から 100 までのカウントを行い、その進行状況をユーザー インターフェイスに表示します。 タスクはタスク バー プレビューから開始および停止できます。 進行状況がタスク バー ボタンに表示されます。
<Window x:Class="Shell_TaskbarItemSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="300" Width="300">
<Window.Resources>
<DrawingImage x:Key="PlayImage">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="Green" Geometry="F1 M 50,25L 0,0L 0,50L 50,25 Z "/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<DrawingImage x:Key="StopImage">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="Gray" Geometry="F1 M 0,0L 50,0L 50,50L 0,50L 0,0 Z "/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Window.Resources>
<Window.CommandBindings>
<CommandBinding Command="MediaCommands.Play"
Executed="StartCommand_Executed"
CanExecute="StartCommand_CanExecute"/>
<CommandBinding Command="MediaCommands.Stop"
Executed="StopCommand_Executed"
CanExecute="StopCommand_CanExecute"/>
</Window.CommandBindings>
<Window.TaskbarItemInfo>
<TaskbarItemInfo x:Name="taskBarItemInfo1"
Overlay="{StaticResource ResourceKey=StopImage}"
ThumbnailClipMargin="80,0,80,140"
Description="Taskbar Item Info Sample">
<TaskbarItemInfo.ThumbButtonInfos>
<ThumbButtonInfoCollection>
<ThumbButtonInfo
DismissWhenClicked="False"
Command="MediaCommands.Play"
CommandTarget="{Binding ElementName=btnPlay}"
Description="Play"
ImageSource="{StaticResource ResourceKey=PlayImage}"/>
<ThumbButtonInfo
DismissWhenClicked="True"
Command="MediaCommands.Stop"
CommandTarget="{Binding ElementName=btnStop}"
Description="Stop"
ImageSource="{StaticResource ResourceKey=StopImage}"/>
</ThumbButtonInfoCollection>
</TaskbarItemInfo.ThumbButtonInfos>
</TaskbarItemInfo>
</Window.TaskbarItemInfo>
<Grid>
<StackPanel>
<TextBlock x:Name="tbCount" FontSize="72" HorizontalAlignment="Center"/>
<StackPanel Orientation="Horizontal">
<Button x:Name="btnPlay" Content="Play" Command="MediaCommands.Play" />
<Button x:Name="btnStop" Content="Stop" Command="MediaCommands.Stop" />
</StackPanel>
</StackPanel>
</Grid>
</Window>
// MainWindow.xaml.cs
using System.ComponentModel;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shell;
namespace Shell_TaskbarItemSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private BackgroundWorker _backgroundWorker = new BackgroundWorker();
public MainWindow()
{
InitializeComponent();
// Set up the BackgroundWorker.
this._backgroundWorker.WorkerReportsProgress = true;
this._backgroundWorker.WorkerSupportsCancellation = true;
this._backgroundWorker.DoWork += new DoWorkEventHandler(bw_DoWork);
this._backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
this._backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
}
private void StartCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
e.Handled = true;
}
private void StartCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
if (this._backgroundWorker.IsBusy == false)
{
this._backgroundWorker.RunWorkerAsync();
// When the task is started, change the ProgressState and Overlay
// of the taskbar item to indicate an active task.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Normal;
this.taskBarItemInfo1.Overlay = (DrawingImage)this.FindResource("PlayImage");
}
e.Handled = true;
}
private void StopCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = this._backgroundWorker.WorkerSupportsCancellation;
e.Handled = true;
}
private void StopCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
this._backgroundWorker.CancelAsync();
e.Handled = true;
}
void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// When the task ends, change the ProgressState and Overlay
// of the taskbar item to indicate a stopped task.
if (e.Cancelled == true)
{
// The task was stopped by the user. Show the progress indicator
// in the paused state.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Paused;
}
else if (e.Error != null)
{
// The task ended with an error. Show the progress indicator
// in the error state.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Error;
}
else
{
// The task completed normally. Remove the progress indicator.
this.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.None;
}
// In all cases, show the 'Stopped' overlay.
this.taskBarItemInfo1.Overlay = (DrawingImage)this.FindResource("StopImage");
}
void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.tbCount.Text = e.ProgressPercentage.ToString();
// Update the value of the task bar progress indicator.
this.taskBarItemInfo1.ProgressValue = (double)e.ProgressPercentage / 100;
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker _worker = sender as BackgroundWorker;
if (_worker != null)
{
for (int i = 1; i <= 100; i++)
{
if (_worker.CancellationPending == true)
{
e.Cancel = true;
break;
}
else
{
System.Threading.Thread.Sleep(25);
_worker.ReportProgress(i);
}
}
}
}
}
}
' MainWindow.xaml.vb
Imports System.ComponentModel
Imports System.Windows.Shell
Class MainWindow
Private _backgroundWorker As New BackgroundWorker
Public Sub New()
InitializeComponent()
' Set up the BackgroundWorker
Me._backgroundWorker.WorkerReportsProgress = True
Me._backgroundWorker.WorkerSupportsCancellation = True
AddHandler Me._backgroundWorker.DoWork, AddressOf bw_DoWork
AddHandler Me._backgroundWorker.ProgressChanged, AddressOf bw_ProgressChanged
AddHandler Me._backgroundWorker.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
End Sub
Private Sub StartCommand_CanExecute(ByVal sender As System.Object, ByVal e As System.Windows.Input.CanExecuteRoutedEventArgs)
e.CanExecute = True
e.Handled = True
End Sub
Private Sub StartCommand_Executed(ByVal sender As System.Object, ByVal e As System.Windows.Input.ExecutedRoutedEventArgs)
If Me._backgroundWorker.IsBusy = False Then
Me._backgroundWorker.RunWorkerAsync()
' When the task is started, change the ProgressState and Overlay
' of the taskbar item to indicate an active task.
Me.taskBarItemInfo1.ProgressState = Shell.TaskbarItemProgressState.Normal
Me.taskBarItemInfo1.Overlay = Me.FindResource("PlayImage")
End If
e.Handled = True
End Sub
Private Sub StopCommand_CanExecute(ByVal sender As System.Object, ByVal e As System.Windows.Input.CanExecuteRoutedEventArgs)
e.CanExecute = Me._backgroundWorker.WorkerSupportsCancellation
e.Handled = True
End Sub
Private Sub StopCommand_Executed(ByVal sender As System.Object, ByVal e As System.Windows.Input.ExecutedRoutedEventArgs)
Me._backgroundWorker.CancelAsync()
e.Handled = True
End Sub
Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
' When the task ends, change the ProgressState and Overlay
' of the taskbar item to indicate a stopped task.
If e.Cancelled = True Then
' The task was stopped by the user. Show the progress indicator
' in the paused state.
Me.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Paused
ElseIf e.Error IsNot Nothing Then
' The task ended with an error. Show the progress indicator
' in the error state.
Me.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.Error
Else
' The task completed normally. Remove the progress indicator.
Me.taskBarItemInfo1.ProgressState = TaskbarItemProgressState.None
' In all cases, show the 'Stopped' overlay.
Me.taskBarItemInfo1.Overlay = Me.FindResource("StopImage")
End If
End Sub
Private Sub bw_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
Me.tbCount.Text = e.ProgressPercentage.ToString()
' Update the value of the task bar progress indicator.
Me.taskBarItemInfo1.ProgressValue = e.ProgressPercentage / 100
End Sub
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim _worker As BackgroundWorker = CType(sender, BackgroundWorker)
If _worker IsNot Nothing Then
For i As Integer = 1 To 100 Step 1
If _worker.CancellationPending = True Then
e.Cancel = True
Return
Else
System.Threading.Thread.Sleep(25)
_worker.ReportProgress(i)
End If
Next
End If
End Sub
End Class
注釈
クラスは TaskbarItemInfo 、Windows 7 タスク バー機能のマネージド ラッパーを提供します。 Windows シェルとネイティブ タスク バー API の詳細については、「 タスク バー拡張機能」を参照してください。 TaskbarItemInfo は、 の Window.TaskbarItemInfo 依存関係プロパティ Windowとして公開されます。
Windows 7 タスク バーには、タスク バー項目を使用してユーザーに状態を伝え、ウィンドウが最小化または非表示のときに一般的なタスクを公開できる機能が強化されています。 クラスによって TaskbarItemInfo 公開される機能は、Windows 7 より前のバージョンの Windows では使用できません。 クラスを TaskbarItemInfo 使用するアプリケーションは、以前のバージョンの Windows でも実行できますが、これらのタスク バーの拡張機能は以前のバージョンでは使用できません。
Windows 7 では、ユーザーの設定によっては、一部のタスク バー機能が使用できない場合があります。 たとえば、Windows Aero が無効になっている場合や、アプリケーションが昇格されたアクセス許可で起動されている場合、タスク バー機能は使用できません。 アプリケーションは、Windows 7 の強化されたタスク バー機能に依存しないユーザーと対話する他の方法を提供する必要があります。
タスク バーの右端にある通知領域のプログラム アイコンは、通常、アプリケーションの状態をユーザーに伝えるために使用されます。 既定では、Windows 7 タスク バーは通知領域のプログラム アイコンを非表示にします。 ただし、 プロパティを Overlay 設定して、メッセージ アプリケーションのオンライン状態などの状態を伝えるために、タスク バー ボタンに画像を追加できます。 オーバーレイ 画像を使用すると、通知領域にプログラム アイコンが表示されない場合でも、ユーザーはアプリケーションの状態を確認できます。 タスクの実行の進行状況をタスク バー ボタンに表示するには、 プロパティと ProgressValue プロパティをProgressState設定します。
Windows 7 タスク バーには、マウス ポインターをタスク バー ボタンの上に移動すると、アプリケーションのサムネイルが表示されます。 既定では、アプリケーション ウィンドウ全体が表示されます。 プロパティを設定することで、サムネイルに表示するウィンドウの特定の部分を ThumbnailClipMargin 指定できます。 タスク バーのサムネイルの Description 上のツールヒントに表示される を指定することもできます。 ユーザー設定によりサムネイルが表示されない場合でも、ツールヒントが表示されます。
タスク バーのサムネイルにボタンを追加すると、アプリケーション ウィンドウに切り替えることなく、一般的なタスクにアクセスできます。 たとえば、Window Media Player には[再生]、[一時停止]、[進む]、[戻る] の各ボタンがあり、アプリケーションが最小化されたときにタスク バーのサムネイルからメディアの再生を制御できます。 タスク バーのサムネイルのボタンはオブジェクトで ThumbButtonInfo 表され、コレクションに ThumbButtonInfos 含まれています。
次の図は、Windows 7 タスク バーの強化された機能を示しています。
Windows タスク バーの機能強化
コンストラクター
TaskbarItemInfo() |
TaskbarItemInfo クラスの新しいインスタンスを初期化します。 |
フィールド
DescriptionProperty |
Description 依存関係プロパティを識別します。 |
OverlayProperty |
Overlay 依存関係プロパティを識別します。 |
ProgressStateProperty |
ProgressState 依存関係プロパティを識別します。 |
ProgressValueProperty |
ProgressValue 依存関係プロパティを識別します。 |
ThumbButtonInfosProperty |
ThumbButtonInfos 依存関係プロパティを識別します。 |
ThumbnailClipMarginProperty |
ThumbnailClipMargin 依存関係プロパティを識別します。 |
プロパティ
CanFreeze |
オブジェクトを変更不可能にできるかどうかを示す値を取得します。 (継承元 Freezable) |
DependencyObjectType |
このインスタンスの DependencyObjectType CLR 型をラップする を取得します。 (継承元 DependencyObject) |
Description |
タスク バー項目のツールヒントのテキストを取得または設定します。 |
Dispatcher |
この Dispatcher が関連付けられている DispatcherObject を取得します。 (継承元 DispatcherObject) |
IsFrozen |
オブジェクトが変更可能かどうかを示す値を取得します。 (継承元 Freezable) |
IsSealed |
このインスタンスが現在シールされている (読み取り専用である) かどうかを示す値を取得します。 (継承元 DependencyObject) |
Overlay |
タスク バー ボタンのプログラム アイコン上に表示されるイメージを取得または設定します。 |
ProgressState |
プログレス インジケーターをタスク バー ボタンにどのように表示するかを示す値を取得または設定します。 |
ProgressValue |
タスク バー ボタンでプログレス インジケーターの完了状態を示す値を取得または設定します。 |
ThumbButtonInfos |
ThumbButtonInfo に関連付けられている Window オブジェクトのコレクションを取得または設定します。 |
ThumbnailClipMargin |
タスク バー サムネイルに表示されるアプリケーション ウィンドウのクライアント領域の一部を指定する値を取得または設定します。 |
メソッド
CheckAccess() |
呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。 (継承元 DispatcherObject) |
ClearValue(DependencyProperty) |
プロパティのローカル値をクリアします。 クリアするプロパティは DependencyProperty 識別子で指定されます。 (継承元 DependencyObject) |
ClearValue(DependencyPropertyKey) |
読み取り専用プロパティのローカル値を消去します。 消去するプロパティは、DependencyPropertyKey で指定します。 (継承元 DependencyObject) |
Clone() |
Freezable の変更可能な複製を作成し、オブジェクトの値の詳細コピーを作成します。 このメソッドは、オブジェクトの依存関係プロパティをコピーするときに式をコピーしますが (コピーされた式は解決されなくなる場合があります)、アニメーションやその現在の値はコピーしません。 (継承元 Freezable) |
CloneCore(Freezable) |
基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを、指定した Freezable の複製 (詳細コピー) にします。 (継承元 Freezable) |
CloneCurrentValue() |
Freezable の現在の値を使用して、変更可能な複製 (詳細コピー) を作成します。 (継承元 Freezable) |
CloneCurrentValueCore(Freezable) |
現在のプロパティ値を使用して、インスタンスを、指定した Freezable の変更可能な複製 (詳細コピー) にします。 (継承元 Freezable) |
CoerceValue(DependencyProperty) |
指定した依存関係プロパティの値を強制します。 これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。 (継承元 DependencyObject) |
CreateInstance() |
Freezable クラスの新しいインスタンスを初期化します。 (継承元 Freezable) |
CreateInstanceCore() |
派生クラスで実装された場合、Freezable 派生クラスの新しいインスタンスを作成します。 (継承元 Freezable) |
Equals(Object) |
指定した DependencyObject が現在の DependencyObject と等しいかどうかを判断します。 (継承元 DependencyObject) |
Freeze() |
現在のオブジェクトを変更不可能にし、その IsFrozen プロパティを |
FreezeCore(Boolean) |
Freezable オブジェクトを変更不可能な状態にするか、変更不可能な状態にできるかどうかをテストします。 (継承元 Freezable) |
GetAsFrozen() |
基本プロパティ値 (アニメーション化されていない値) を使用して、Freezable の 固定されたコピーを作成します。 コピーが固定されているため、参照によって任意の固定されたサブオブジェクトがコピーされます。 (継承元 Freezable) |
GetAsFrozenCore(Freezable) |
基本プロパティ値 (アニメーション化されていない値) を使用して、インスタンスを、指定した Freezable の固定された複製にします。 (継承元 Freezable) |
GetCurrentValueAsFrozen() |
現在のプロパティ値を使用して、Freezable の固定されたコピーを作成します。 コピーが固定されているため、参照によって任意の固定されたサブオブジェクトがコピーされます。 (継承元 Freezable) |
GetCurrentValueAsFrozenCore(Freezable) |
現在のインスタンスを、指定した Freezable の固定された複製にします。 オブジェクトに、アニメーション化された依存関係プロパティが存在する場合、現在アニメーション化されている値がコピーされます。 (継承元 Freezable) |
GetHashCode() |
この DependencyObject のハッシュ コードを取得します。 (継承元 DependencyObject) |
GetLocalValueEnumerator() |
どの依存関係プロパティがこの DependencyObject 上にローカルに設定された値を持つかを確認するための、専用の列挙子を作成します。 (継承元 DependencyObject) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
GetValue(DependencyProperty) |
DependencyObject のこのインスタンスにある依存関係プロパティの現在の有効値を返します。 (継承元 DependencyObject) |
InvalidateProperty(DependencyProperty) |
指定した依存関係プロパティの有効値を再評価します。 (継承元 DependencyObject) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnChanged() |
現在の Freezable オブジェクトの変更時に呼び出されます。 (継承元 Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject) |
設定されたばかりの DependencyObjectType データ メンバーに対して、適切なコンテキスト ポインターが確立されていることを確認します。 (継承元 Freezable) |
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty) |
このメンバーは、Windows Presentation Foundation (WPF) インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Freezable) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) の DependencyObject 実装をオーバーライドして、さらに型 Freezable の変化する依存関係プロパティへの応答として任意の Changed ハンドラーも呼び出します。 (継承元 Freezable) |
ReadLocalValue(DependencyProperty) |
ローカルの依存関係プロパティの値を返します (存在する場合)。 (継承元 DependencyObject) |
ReadPreamble() |
Freezable が有効なスレッドからアクセスされていることを確認します。 Freezable の継承側は、依存関係プロパティでないデータ メンバーを読み取る任意の API の開始時に、このメソッドを呼び出す必要があります。 (継承元 Freezable) |
SetCurrentValue(DependencyProperty, Object) |
依存関係プロパティ値のソースを変更せずにその値を設定します。 (継承元 DependencyObject) |
SetValue(DependencyProperty, Object) |
依存関係プロパティ識別子を指定して、該当する依存関係プロパティのローカル値を設定します。 (継承元 DependencyObject) |
SetValue(DependencyPropertyKey, Object) |
依存関係プロパティの DependencyPropertyKey 識別子で指定した読み取り専用の依存関係プロパティのローカル値を設定します。 (継承元 DependencyObject) |
ShouldSerializeProperty(DependencyProperty) |
シリアル化プロセスが、指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。 (継承元 DependencyObject) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
VerifyAccess() |
呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。 (継承元 DispatcherObject) |
WritePostscript() |
Freezable の Changed イベントを発生させ、その OnChanged() メソッドを呼び出します。 Freezable から派生するクラスは、依存関係プロパティとして格納されていないクラス メンバーを変更するすべての API の終了時に、このメソッドを呼び出す必要があります。 (継承元 Freezable) |
WritePreamble() |
Freezable が固定されておらず、有効なスレッド コンテキストからアクセスされていることを確認します。 Freezable の継承側は、依存関係プロパティでないデータ メンバーに書き込む任意の API の開始時に、このメソッドを呼び出す必要があります。 (継承元 Freezable) |
イベント
Changed |
Freezable、またはこれに含まれているオブジェクトが変更されると発生します。 (継承元 Freezable) |
適用対象
.NET