6

次のような外観と動作のリボン インターフェイスを備えたアプリケーションを作成したいと思います。

  • アプリケーションには、リボン付きの 1 つのメイン フォームがあります
  • リボンには複数のタブがあります
  • ユーザーがリボンのタブを切り替えると、リボンの下のパネルが変更され、リボン パネルに関連するコンテンツが表示されます。そうすれば、リボン タブはウィンドウ全体のタブであるかのように機能します。

たとえば、リボンには、人とタスクの 2 つのタブがあります。現在のリボン パネルが「人物」の場合、リボンの下に人物データを含むグリッドが表示されます。リボンには、人物データを操作するためのコマンドが含まれています。ユーザーがリボンの「タスク」タブに切り替えると、アプリケーションはリボンの下にタスクを含むフォームを表示する必要があります。

質問は、このシナリオでリボンを使用できますか?

リボンでできることとできないことを説明した「OFFICE FLUENT™ USER INTERFACE DESIGN GUIDELINES」を読みましたが、これについては何も見つかりませんでした。

4

7 に答える 7

3

TLDR: アプリケーションのコンセプトには合っていると思いますが、それを機能させるには、人とタスクの機能を明確に区別する必要があります。

Scott は、Microsoft がリボンを使用する目的とは多少対照的かもしれないという点を指摘していますが、リボンはこの種の使用にも適していると考えています。マイケルが提案するような従来のタブが必要な場合は、ウィンドウまたはタスクを切り替えるためのボタンが必要になるためです。リボンを使用して、制御機能/ボタンをタスクのタブに直接リンクすると、どのボタンがどのタスクにリンクされているかを簡単に知ることができます。アプリ全体で使用されるボタンは、Office ボタン (左上隅にある大きな Office ロゴ) に統合できます。これは、実際に Microsoft が行っていることとまったく同じです。

現在、リボンのようなツールバーも実装しているため、完全に客観的ではない可能性があります。ただし、リボンの機能は非常にシンプルで、ユーザーがボタンを簡単に見つけることができると考える傾向があります。補足: これは、大きなロゴとドロップダウン ギャラリーを使用して実現することもできます。利用可能なほとんどのリボン パッケージにはこれらの機能が実装されているので、自分でコーディングする必要はありません (非常に簡単にできる場合を除きます)。

于 2009-03-27T09:05:11.607 に答える
3

Codeplex で Southridge Hands-on-Lab を見つけました。ラボ 3 には、私が意図したのと同じように使用されるリボン コントロールの例があります。

サウスリッジ ラボは Microsoft によって行われているため、この例と同じことができると思います。

于 2010-01-08T18:56:02.113 に答える
2

タブごとのコマンドが少ない (20 未満) 場合は、タブ シートの上部または他の場所にコマンド用のボタンがある従来のタブ コントロールを使用する必要があります。これにより、アプリ全体に適用されるボタン (Exit、Preferences など) をタブ コントロールの外側に配置するオプションも提供されます。これにより、ユーザーに対してスコープを明確にすることができます (リボンではできないこと)。

ユーザーの作業に「タブ」間で情報を比較することが含まれる場合は、タブをまったく使用せず、代わりに個別のプライマリ ウィンドウを使用します (たとえば、人用とタスク用に 1 つ)。それぞれが独自の従来のメニューバーとツールバーを持つことができ、ユーザーはタブコントロールで前後に切り替える代わりに、ウィンドウを画面に並べて配置して作業を行うことができます。

于 2009-02-16T18:24:47.983 に答える
2

あなたが提案していることは、マイクロソフトのガイドラインに反しています。ガイドラインに違反している可能性があります。

リボンは、1 つのドキュメントがあり、それを操作するためのコマンドがリボンにあるドキュメント中心のアプリケーションで使用することになっています。リボンのタブは、リボンをナビゲートすることのみを目的としています...アプリケーションをナビゲートするためのものではありません。

(そうは言っても...あなたが説明した方法でリボンを使用するアプリケーションをいくつか知っています...そしてそれは非常にうまく機能しているようです!)

リボンを使用するアプリを実装するときに、同様の頭痛に遭遇しました。次のバージョンでは、状況依存のツールバーに戻ります:)

于 2009-02-14T18:57:05.547 に答える
1

Use the OnTabChange event to bring the appropriate panel to the front view:

procedure TForm1.Ribbon1TabChange(Sender: TObject; const NewIndex,
  OldIndex: Integer; var AllowChange: Boolean);
begin
  case NewIndex of
    0: Panel0.BringToFront;

    1: Panel1.BringToFront;

    2: Panel2.BringToFront;

    3: Panel3.BringToFront;

  end;
end;
于 2009-05-25T21:02:41.363 に答える
0

新しいバージョンの wpf リボン コードには、以前のバージョンと同じ制限はありません。

于 2010-08-23T18:22:40.080 に答える
0

参考までに、私は devexpress の xtrabar スイートで少し遊んで、タグ プロパティを使用してこのタブ コントロールの動作を実装しました。リボン ページごとにパネル コントロールを作成し、次のようにします。

InitPanels

RibPage1.tag = Panel1
RibPage2.tag = Panel2

' Set Display Properties
'Panel1 displays initially

With Panel1
   .Dock = Fill
   .Show()
End With

With Panel2
   .Dock = Fill
   .Hide()
End With

Ribbon.SelectedPage = RibPage1

選択したページのリボンの変更

P as Panel = ctype(sender.tag, Panel)
p.hide()

選択したページのリボンが変更されました

P as Panel = ctype(sender.tag, Panel)
p.Show()

私はプログラミングの初心者なので、おそらくこれを行うためのより良い方法がありますが、これは私にとってはうまくいくようです。おそらく、リボンのベンダーにも依存します。

お役に立てれば。

ジョシュ

于 2009-04-06T20:04:30.890 に答える