そうそう、電子書籍の自分用Viewerを作るついでに、
WPFでZIPを使う方法を調べた。

ライセンス的に、DotNetZipを使うのが楽(Ms-PLライセンスらしい)みたいなのでまず、これを落としてくる。
http://dotnetzip.codeplex.com/

んで、この中から、Releaseなionic.Zip.dllを探して、
VisualStudioのプロジェクトの参照設定に追加。

そしたら、
using Ionic.Zip;

して、こんな感じでZipFileのインスタンスを作る
ZipFile zipFile = new ZipFile(filePath, Encoding.GetEncoding("shift_jis"));
第2引数の文字コードは、ZIPアーカイブ内のファイル名の文字コード指定ね。
あと、Dispose対応なので、必要に応じてusingしてください。

zipFileは、Iteratableなクラスなので、foreach等で
foreach (ZipEntry zipEntry in zipFile) {
//ここにコード
}

等とすれば、エントリーの一覧がとれる。

zipEntry.FileNameで、アーカイブ内のファイル名などがとれる。
※ディレクトリ階層があれば、xxx/yyy/zzzの形式になっている。

今回は、圧縮ファイル内の任意のファイルをメモリー上で扱うので、
Stream stream = zipEntry.OpenReader();
でストリームを取り出して好きに読み出します。
※これもDisposable。

なお、複数のStreamを同時に使うとうまくいかないので、
そういうときには、一端、メモリーストリームに解凍データを入れて、
その上で処理をするのがよいかと。

using (var ms = new MemoryStream()) {
  using (var s = entryFiles[page].OpenReader()) {
    s.CopyTo(ms);
  }
  ms.Seek(0, SeekOrigin.Begin);
  //TODO やりたい処理
}

こんな感じ?