5

ここで、TDI と C# に関する 2 つのスレッドを見てきました。どちらも私の質問に答えてくれませんでした...

TDI は最近の標準にほぼ似ているため、特別なコントロール (AvalonDock や SandDock など) を購入する必要があるとはほとんど想像できません。これは、組み込みのタブコントロール (?) で何とか可能でなければなりません! ドックやドラッグ可能なタブアイテムのような特別な機能は必要ありません。すべてのフォームを新しいタブで開くだけです。それでおしまい。

すべてのフォーム コンテンツ コントロールをユーザー コントロールに配置し、要求 (ボタン、メニュー クリックなど) によって新しいタブを追加し、それに対応するユーザー コントロールを配置するのと同じように、このようなものです。

どのようにしますか?これは(私にとっても)それほど複雑ではありませんか、それとも何か不足していますか?!

どうもありがとう!

4

2 に答える 2

7

たぶん、MVVMに関するJosh Smithの記事は、そのようなユーザーインターフェイスを設計する方法のアイデアを与えることができます。構築されている例は、開始ブロックとして使用できるように、タブ付きのドキュメントインターフェイスです。

于 2009-06-22T12:28:12.473 に答える
5

それほど難しくありません。やり方が色々あるので難しそうです。

これを試して:

<TabControl x:Name="documentArea"/>

AddForm ボタンのハンドラ:

private void AddFormClick(object sender, RoutedEventArgs e)
{
    object form = GetNewForm();

    documentArea.Items.Add(form);
}

それでおしまい。GetNewForm()2 つの方法のいずれかで実装する必要があります。フォームを表示するユーザー コントロールを返すようにします。

またはさらに良いことに、表示したいドキュメントを返すようにします。aDataTemplateを使用して、このドキュメントの表示に使用するコントロールを選択します。この方法は、セットアップがより複雑になります。

于 2009-06-22T12:44:12.440 に答える