none
スタックパネルについて RRS feed

  • 質問

  • いつもお世話になっています。
    C#4.0とWPFで開発してます。
    xaml上でstack panelを垂直方向に
    3つ並べています。

    stack panel1
    stack panel2
    stack panel3

    stack panel2をVisibility=Collapsed で
    見えなくして画面上で

    stack panel1

    stack panel3

    と実行時に表示されます。

    これを

    stack panel1
    stack panel3
    のように詰めて表示するには
    どのようなプロパティを設定すればよろしいでしょうか?

    よろしくお願いします。

    2010年8月24日 22:32

回答

  • 3つのStackPanelは、どのレイアウトパネル上に配置しているのでしょうか?Grid?StackPanel?それともCanvas?

    たとえば

    <StackPanel x:Name="LayoutRoot">
      <StackPanel x:Name="stackPanel1"/>
      <StackPanel x:Name="stackPanel2"/>
      <StackPanel x:Name="stackPanel3"/>
    </StackPanel>
    

    という風に、StackPanelの中に3つのStackPanelが置かれているとき、真ん中のstackPanel2のVisibilityをCollapsedで隠すと、ちゃんと上下2つのStackPanelが詰めて表示されると思います。

    Canvas上に配置している場合は、真ん中のStackPanelを隠しても Canvas上の StackPanel の位置は変更されないので、詰めて表示されません。


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年8月24日 23:45

すべての返信

  • 3つのStackPanelは、どのレイアウトパネル上に配置しているのでしょうか?Grid?StackPanel?それともCanvas?

    たとえば

    <StackPanel x:Name="LayoutRoot">
      <StackPanel x:Name="stackPanel1"/>
      <StackPanel x:Name="stackPanel2"/>
      <StackPanel x:Name="stackPanel3"/>
    </StackPanel>
    

    という風に、StackPanelの中に3つのStackPanelが置かれているとき、真ん中のstackPanel2のVisibilityをCollapsedで隠すと、ちゃんと上下2つのStackPanelが詰めて表示されると思います。

    Canvas上に配置している場合は、真ん中のStackPanelを隠しても Canvas上の StackPanel の位置は変更されないので、詰めて表示されません。


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年8月24日 23:45
  • こんにちは、lucky1 さん。

    MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。

    その後いかがでしょうか。なかむら さんからの情報は確認されましたか?

    なかむら さんからの情報は有効な情報かと思われましたので、勝手ながら私のほうで回答としてマークさせていただきました。
    なかむら さん、情報ありがとうございます。

    今後、同じ問題でこのスレッドを参照される方が、有効な情報を探しやすくなるかと思いますので、解決に役立った投稿や、参考になる情報など、有効な情報には回答としてマークすることをお願いしています。

    一旦回答としてマークさせていただきましたが、もし、まだ解決されていないようでしたら、再現方法など詳細をお知らせいただいてご質問を続けてくださいね。

    今後とも、MSDN フォーラムをよろしくお願いいたします。それでは。
                                                                                               
    マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2010年9月3日 8:20