0

2 つToolBarの が並んでいます (ボタンを左右に配置できるようにするために、これを行う必要がありました)。2 番目の位置 (ツールバーの間)に配置されたaTextBlock内にテキストを追加しましたが、もちろん、両方のツールバーの間にギャップが生じました (もちろん、stackPanel はツールバーと同じスタイルではありません)。StackPanelGrid

LinearGradientBrush私のツールバーと同じように見えるように、スタックパネルにツールバーを複製したいと思います。ポイントは、1 つのツールバーのように見えるようにすることです。

を取得する方法、ToolBar StyleまたはLinearGradientBrush定義を使用して再作成する方法はありますか?

4

3 に答える 3

2

ここにあなたがそれを行うことができる1つの方法があります. ツールバーの名前の 1 つが「toolBar」であるとします。BackgroundのプロパティをStackPanelBackgroundプロパティにバインドしますToolBar

<StackPanel Background="{Binding Path=Background, ElementName=toolBar}" />

それが役立つことを願っています! :)

編集:

のコントロール テンプレートは、ToolBar こちらで確認できます。

LinearGradientBrush使用済みの外観は次のとおりです。

<LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
  <GradientBrush.GradientStops>
    <GradientStopCollection>
      <GradientStop Color="#FFF" Offset="0.0"/>
      <GradientStop Color="#AAA" Offset="1.0"/>
    </GradientStopCollection>
  </GradientBrush.GradientStops>
</LinearGradientBrush>

イベントでは、バインディングの代わりにこれを使用したいだけです。:)

于 2011-04-06T16:07:08.080 に答える
0

アプリケーションでこれとまったく同じことを行うと、問題が見つかりました。XP マシンで Vista マシンと同じアプリケーションを実行すると、2 つのツールバーの高さが 2 ピクセル異なることがわかりました。

これを回避するために、2 つのツールバー オブジェクトを格納する 1 つの StackPanel を作成することになりました (背景を透明に設定)。

これにより、2 つの OS 間でルック アンド フィールが同じであることが保証され (会社が両方を実行していたとき)、ツールバーの 1 つの高さが他を除いて大きくなった場合にも役立ちます。

于 2011-07-07T04:58:53.117 に答える
0

デフォルトのテンプレートとスタイルはMSDNで入手できます。おそらくそこから関連するビットを抽出できます。

于 2011-04-06T15:55:21.243 に答える