1

私はAvalonDockを使用してWPFでアプリを構築しています。これは、便利だと思うこともありますが、ほとんどの場合、WPFを自分で学び、そのスタイルのプログラミング全般に慣れるためです。アプリのメインの「ツールボックス」をドッキング可能なペインとして構築し、ユーザーが画面スペースを最大限に活用できるように、移動、引き出し、または自動非表示にできるようにしました。その中で、私は使用しています。さまざまなボタンを配置するためのStackPanel。

ツールボックスが左または右にドッキングされている場合はStackPanelを垂直に向け、上部または下部にドッキングされている場合は水平に向ける(比較的簡単な)方法はありますか?オリエンテーションを直接設定するのではなく、何かにバインドする方法があるはずですが、バインドするのに役立つものは何も見つからないようです。

4

1 に答える 1

3

そのようなものはどうですか:

StackPanelは次のようになります。

<StackPanel Orientation="{Binding DockableStyle, 
                         RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Avalon:DockableContent}},
                         Converter={StaticResource MyConverter}">
  <!-- StackPanel content here -->
</StackPanel>

方法Myconverterとして次のものを持っているConvert

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
  DockableStyle style = value as DockableStyle
  if (style == DockableStyle.TopBorder || style == DockableStyle.BottomBorder)
  {
     return Orientation.Horizontal;
  }
  else
  {
     return Orientation.Vertical;
  }
}

私はこれがあなたのためにすべての魔法をするべきだと思います

于 2012-06-11T13:58:56.157 に答える