2

すべてのボタンを片側、たとえば左に揃えるツールバー (ストック/カスタム) を作成する方法はありますか?

ツールバーにab、 の3 つのボタンがあります。c動的にb非表示にすると、 と の間に目に見えるギャップがaありcます。aとの間のギャップを自動的に閉じますが、再び表示されるとc順序を復元するツールバーを作成するにはどうすればよいですか?b

ありがとう!

情報

<Toolbar /><Stackpanel />、これまでに試し<DockPanel />ましたが、ボタンが整列しませんでした。

4

2 に答える 2

3

Collapsedの代わりにb を作成する必要がありますHidden

MSDN UIElement.Visibility プロパティを参照してください:

WPF モデルでは、非表示は、オブジェクトがレンダリングされるべきではなく、WPF レイアウト内のスペースを占有する必要がある可視状態を示します。

より具体的には、@Nayan が指摘したように、以下を参照できますVisibility Enumeration

  • Collapsed 要素を表示せず、レイアウトにスペースを確保しません。
  • 非表示 要素を表示しませんが、レイアウト内に要素用のスペースを確保します。
  • Visible 要素を表示します。

PS:それが理由ですBooleanToVisibilityConverter

Convert メソッドは、true が渡された場合は Visibility.Visible を返し、false が渡された場合は Visibility.Collapsed を返します。

于 2013-09-02T09:30:10.507 に答える
1

次を使用しStackPanelます。

<StackPanel Orientation="Horizontal">
    <Button Width="100" Click="Button_Click" />
    <Button Width="100" Click="Button_Click" />
    <Button Width="100" Click="Button_Click" />
    <Button Width="100" Click="Button_Click" />
</StackPanel>

private void Button_Click(object sender, RoutedEventArgs e)
{
    ((Button)sender).Visibility = Visibility.Collapsed;
}
于 2013-09-02T09:23:55.590 に答える