0

WrapPanelいくつかの異なるカスタムを含むを持っていますUserControls。シナリオによっては、表示されているものをフィルタリングする必要がある場合がありUserControlsます。私の目標は、フィルタリングする必要のあるコントロールを表示/非表示にすることで、その場で表示されるコントロールを切り替えることができるようにすることです。つまり、表示されたままのコントロールをパネルの左上に移動します。

Visibilityは、コントロールのプロパティVisibility.Collapsedを表示したくないときに設定しているだけです。を使用していたのでWrapPanel、残りのコントロールはパネルの左上に移動すると思いました。

代わりに、の一部を非表示にした後も、まだ表示されているUserControlsコントロールは以前とまったく同じままであり、まだ表示されているコントロール間にギャップが残ります。私はSilverlightSpyでアプリを開きましたが、実際にはまだそこにありますが(これは理にかなっています)、単に見えないことを示しています。UserControls

だから私の質問は:まだ見えるものが新しい位置にスライドできるようにする(すべて左上に向かってシフトする-のように)UserControls内に 表示/非表示にする方法はありますか?WrapPanel UserControlsStackPanel

(これでうまくいくと思います)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

4

1 に答える 1