デフォルトでは、これらのプレビューにはウィンドウのコンテンツ全体が表示されます。 ただし、一部のアプリケーションでは、ウィンドウのすべてのコンテンツではなく、その一部のみをプレビューで表示する方がはるかに便利です。 このような機能はWindows 7タスクバーにも提供されており、アプリケーションで使用できます。 Windows 7タスクバーのこの機能を見てみましょう。

通常どおり、.NET Interop Sample Libraryを使用します。 Windowsシステムライブラリの関数のラッパーの一部として、この機能の実装に役立つSetThumbnailClipメソッドがあります。 パラメータでこのメソッドを呼び出す場合、フォームの現在のインスタンスとウィンドウ領域を区切る座標を渡す必要があります。
private void Clip5_Click(object sender, EventArgs e)
{
WindowsFormsExtensions.SetThumbnailClip(this, new Rectangle(10, 10, 145, 145));
}
この例は、この方法の使用が非常に簡単であることを明確に示しています。
この機能の可能性を調べる小さなアプリケーションを作成しましょう。 これを行うには、いくつかのコントロールを追加する空のアプリケーションを作成します。 アプリケーションを起動すると、プレビューウィンドウは次のようになります。

最初はプレビューでウィンドウ全体が表示されていることがわかります。 SetThumbnailClipメソッドを使用して、表示領域を制限しましょう。 たとえば、フォーム上の入力フィールドのみを表示します。

興味深いことに、フォームに動的コンテンツ(ビデオなど)がある場合、そのコンテンツは動的に表示されます。 デモアプリケーションでは、アニメーション画像をいくつか投稿し、プレビューの一部として表示しました。 このために他に何もする必要はありません。


重要なのは、アプリケーションのプロセスで、プレビューの内容を変更できることです。 たとえば、ある時点で重要な入力フィールドの内容を表示し、別の時点でフォームの画像を表示する必要がある場合があります。 このようなダイナミズムは、ユーザーに関連情報を受け取る機会をユーザーに与えることができます。
最後に、フォームのコンテンツ全体を表示する必要がある場合、同じメソッドを使用できますが、フォーム全体のサイズを渡すことができます。 この場合、プレビューには再びウィンドウ全体が表示されます。
private void NoClip_Click(object sender, EventArgs e)
{
WindowsFormsExtensions.SetThumbnailClip(this, new Rectangle(new Point(0, 0), Size));
}
デモアプリケーション:
Taskbar-ThumbnailClip.zip