WrapPanel
いくつかの異なるカスタムを含むを持っていますUserControls
。シナリオによっては、表示されているものをフィルタリングする必要がある場合がありUserControls
ます。私の目標は、フィルタリングする必要のあるコントロールを表示/非表示にすることで、その場で表示されるコントロールを切り替えることができるようにすることです。つまり、表示されたままのコントロールをパネルの左上に移動します。
今Visibility
は、コントロールのプロパティVisibility.Collapsed
を表示したくないときに設定しているだけです。を使用していたのでWrapPanel
、残りのコントロールはパネルの左上に移動すると思いました。
代わりに、の一部を非表示にした後も、まだ表示されているUserControls
コントロールは以前とまったく同じままであり、まだ表示されているコントロール間にギャップが残ります。私はSilverlightSpyでアプリを開きましたが、実際にはまだそこにありますが(これは理にかなっています)、単に見えないことを示しています。UserControls
だから私の質問は:まだ見えるものが新しい位置にスライドできるようにする(すべて左上に向かってシフトする-のように)UserControls
内に
表示/非表示にする方法はありますか?WrapPanel
UserControls
StackPanel
(これでうまくいくと思います)UserControls
から完全に削除し、必要になるまでメモリに保存することについて議論しました。WrapPanel
次に、他のコントロールを表示/非表示にする場合は、メモリ内のオブジェクトからそれらを取得します。しかし、これを行うためのより良い方法があるはずです。
誰か提案やアドバイスがあれば、大歓迎です。ありがとう!
-ロイド
アップデート:
XAML :(非常に単純)
<toolkit:WrapPanel x:Name="MyLayout" Height="300" HorizontalAlignment="Left" VerticalAlignment="Top" Width="400" />
コードビハインド: UserControlsは動的に追加されます:
MyLayout.Children.Add(oUserControl)
また、動的に折りたたまれるように設定されています。
oUserControl.Visibility = Visibility.Collapsed