1

私は2010 年 10 月の WPF に Microsoft リボンを使用していますRibbonControlGroup。左と右はテキストのみのRibbonToggleButtonコントロールで、中央は画像のみのコントロールRibbonButtonです。ボタンには、上の行に合わせて定義された幅があります。

私のコード:

<r:RibbonControlGroup>
  <r:RibbonToggleButton Width="110" Label="Outgoing" IsChecked="True" />
  <!-- Padding and Height set to align the buttons/image -->
  <r:RibbonButton Width="30" Padding="5 0" Height="24" SmallImageSource="Images\Small\arrow_swap.png" />
  <r:RibbonToggleButton Width="110" Label="Incoming" />
</r:RibbonControlGroup>

問題は、中央のボタンに を適用するとすぐにSmallImageSource、他の 2 つのボタンが画像の間隔を取得し、テキストが中央に配置されなくなることです。それが問題(1)です。

手っ取り早い解決策が見つからなかったので、中ボタンの画像を 経由ではなく、ボタンの内容に合わせてSmallImageSource追加してみました。<Image>ただし、ボタンは空のままです。それが問題(2)です。

3 つ目の解決策は、左右のボタンにも画像を追加することでした。残念ながら、画像とテキストの間に余白がほとんどなく、見栄えがよくありません。<Style TargetType="Image">に aを追加するなど、マージンを拡大するためにいくつかのことを試みまし<RibbonToggleButton.Resources>たが、エディターはそれを受け入れて設計時に間隔を表示しますが、実行時にマージンが再びなくなります。それが問題(3)です。

3つの問題のいずれかに対する適切な解決策を誰かが持っていますか? 私はそれを働かせることができません。問題の数は、代替手段の好みでもあります。(1) 適切なハックで使用するのが最も好きです。

4

1 に答える 1

1

あなたにはそれができないようです。その設計による。

MSDNによると(ここではページの半分ほど下にあります):

関連するリボン コントロールは、RibbonControlGroup にまとめてグループ化できます。コントロール グループのサイズが変更されると、1 つの RibbonControlSizeDefinition が、RibbonControlGroup 内のすべてのコントロールに適用されます。RibbonControlGroup は、1 つのコントロールであるかのように、RibbonGroup 内に配置されます。

RibbonControlGroup 内のすべてのコントロールは、同じ RibbonControlSizeDefinition を共有します。したがって、あなたの場合、すべてのボタンに画像が追加されます。

すべてのコントロールを密接に接着したくない場合は、代わりに RibbonGroup を使用できます。このように、さまざまな RibbonControlSizeDefinitions を使用して各ボタン コンテナーをカスタマイズできます。

于 2013-07-15T06:20:00.953 に答える